문제
2차원 배열에 입력된 문자 중 입력된 데이터 만큼의 길이를 갖는 회문의 갯수를 구하는 문제
풀이방법
2차원 배열을 행과 열을 완전탐색하면서 입력된 갯수만큼의 문자열을 만들고 이 문자열이 회문일 경우를 찾는다.
소스코드
package samsung;
import java.util.*;
public class s_1215 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
for(int t = 1; t <= 10; t++) {
char[][] a = new char[8][8];
int n = sc.nextInt();
int cnt = 0;
for(int i = 0; i < 8; i++) {
String s = sc.next();
for(int j = 0; j < 8; j++) {
a[i][j] = s.charAt(j);
}
}
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 8 - n + 1; j++) {
char[] c = new char[n];
for(int k = 0; k < n; k++){
c[k] = a[i][j+k];
}
int flag = 0;
for(int k = 0; k < n/2; k++) {
if(c[k] != c[n-k-1]) {
flag = 1;
break;
}
}
if(flag == 0)
cnt++;
}
}
for(int i = 0; i < 8; i++) {
for(int j = 0; j < 8 - n + 1; j++) {
char[] c = new char[n];
for(int k = 0; k < n; k++){
c[k] = a[j+k][i];
}
int flag = 0;
for(int k = 0; k < n/2; k++) {
if(c[k] != c[n-k-1]) {
flag = 1;
break;
}
}
if(flag == 0)
cnt++;
}
}
System.out.println("#" + t + " " + cnt);
}
}
}
'Problem Solving > SWEA' 카테고리의 다른 글
[SWEA] 1959. 두 개의 숫자열 (0) | 2020.02.15 |
---|---|
[SWEA] 1217. [S/W 문제해결 기본] 4일차 - 거듭 제곱 (0) | 2020.02.15 |
[SWEA] 1954. 달팽이 숫자 (0) | 2020.02.09 |
[SWEA] 1948. 날짜 계산기 (0) | 2020.02.09 |
[SWEA] 1230. 암호문3 (0) | 2020.02.09 |
댓글