-
[SWEA] #1215 _ 회문1Problem Solving/SWEA 2019. 8. 4. 10:02
[회문1] https://swexpertacademy.com/main/code/problem/problemDetail.do
직선으로 된 주어진 길이의 회문을 찾는 문제이다.
1행 1열 부터 가로, 세로로 회문인지 검사하여 카운트한다.
(주어진 길이에서 검사할 수 있는 모든 경우 검사)
[ 소스 코드 ]
#include <cstdio> using namespace std; int len; char arr[9][9]; int palindrome(int r, int c); int main() { int count = 0; for (int i = 0; i < 10; i++) { scanf("%d", &len); for (int j = 0; j < 8; j++) { for (int k = 0; k < 8; k++) { scanf("%c", &arr[j][k]); if (arr[j][k] == '\n') scanf("%c", &arr[j][k]); } } count = 0; for (int j = 0; j < 8; j++) { for (int k = 0; k < 8; k++) { count += palindrome(j, k); } } printf("#%d %d\n", i + 1, count); } return 0; } int palindrome(int r, int c) { int tmp_r = r, tmp_c = c, cmp_r = r + len - 1, cmp_c = c + len - 1; int count = 0; if (cmp_r < 8) { while (1) { if (cmp_r < tmp_r) { count++; break; } if (arr[c][tmp_r] != arr[c][cmp_r]) break; tmp_r++; cmp_r--; } } if (cmp_c < 8) { while (1) { if (cmp_c < tmp_c) { count++; break; } if (arr[tmp_c][r] != arr[cmp_c][r]) break; tmp_c++; cmp_c--; } } return count; }
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] #5215 _ 햄버거 다이어트 (0) 2019.08.04 [SWEA] #2805 _ 농작물 수확하기 (0) 2019.08.04 [SWEA] #5658 _ 보물상자 비밀번호 (0) 2019.07.17 [SWEA] #1249 _ 보급로 (0) 2019.07.17 [SWEA] #1208 _ Flatten (0) 2019.07.10 댓글