문법/알고리즘
회문
코딩 화이팅
2023. 2. 17. 15:52
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
느낀점
다중 반복문 쓰면서 2차 배열에서 또 이어져서 구현 가능하다.
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
for (int Tc= 0; Tc < 10; Tc++) {//테케만큼 반복
int line=sc.nextInt();
int count=0;
char[][] box=new char[8][8];//8x8배열 생성
for (int x = 0; x < 8; x++) {
String X=sc.next();
for (int y = 0; y < 8; y++) {
box[x][y]=X.charAt(y);
}
}//입력받을 배열 입력 받기
for (int i = 0; i < 8; i++) {//y축으로 하나씩 더하기
for (int j = 0; j <= 8-line; j++) {//x축에 라인만큼 받기 위해
//8-line까지의 배열로 x축으로 하나씩 이동
boolean isPal = false;//일단 거짓으로 선언
for (int j2 = 0; j2 < line/2; j2++) {//두개씩 한 그룹으로 묶어
//라인만큼의 가운데를 나눠 그거에 맞게 비교하기 위한 배열
//두개를 다시 0으로 초기화 해주기!!!!!!!!!!!!!!!!!!!!!
if (box[i][j2 + j]==box[i][line-j2-1 + j]) {
isPal = true;
}
두개로 받고 라인만큼 뒤에와 비교
else
{
isPal = false;
break;
}
}
if(isPal) {
// System.out.println("ok : " + i +"," + j);
count++;
}
}
}
for (int i = 0; i < 8; i++) {
for (int j = 0; j <= 8-line; j++) {
boolean isPal = false;
for (int j2 = 0; j2 < line/2; j2++) {
if (box[j2+j][i]==box[line-j2-1+j][i]) {
isPal = true;
}
else
{
isPal = false;
break;
}
}
if(isPal) {
// System.out.println("ok : " + i +"," + j);
count++;
}
}
}
System.out.println("#"+(Tc+1)+" "+count);
}
}
}