코딩 화이팅 2023. 2. 17. 15:52

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?contestProbId=AV14QpAaAAwCFAYi&solveclubId=AYWesuzK3nUDFAQK&problemBoxTitle=1%EC%A3%BC%EC%B0%A8&problemBoxCnt=11&probBoxId=AYZJNCd6pKoDFARc

 

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);
        }
    }
}