SWEA - 1215. [S/W 문제해결 기본] 3일차 - 회문1 :: 매운코딩
728x90
300x250

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14QpAaAAwCFAYi&categoryId=AV14QpAaAAwCFAYi&categoryType=CODE

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

8x8 주어진 판에 "ABCACBA"과 앞이나 뒤에서 읽어도 늘 같은 문장이 되는 것의 갯수 찾는 문제.

import java.util.Scanner;
import java.io.FileInputStream;

/*
   사용하는 클래스명이 Solution 이어야 하므로, 가급적 Solution.java 를 사용할 것을 권장합니다.
   이러한 상황에서도 동일하게 java Solution 명령으로 프로그램을 수행해볼 수 있습니다.
 */
class Solution
{
	public static void main(String args[]) throws Exception
	{
				Scanner sc = new Scanner(System.in);
		for(int tc=0;tc<10;tc++) {
			int n = sc.nextInt();
			char[][] map = new char[8][8];
			int cnt = 0;
			
			for(int i=0;i<8;i++) {
				String str= sc.next();
				for(int j=0;j<8;j++) {
					map[i][j] = str.charAt(j);
				}
			}
			//가로
			for(int i=0;i<8;i++) {
				for(int j=0;j<8;j++) {
					boolean flag =false;
					for(int k=0;k<n/2;k++) {
						if((j+n-k-1)>=8 || (j+k)>=8) {
							flag=true;
							break;
						}
						if(map[i][j+k]!=map[i][j+n-k-1]) {
							flag=true;							
						}
					}
					if(!flag) {
						cnt++;
						//System.out.println(i+","+j);
					}

				}
			}
			
			//세로
			for(int i=0;i<8;i++) {
				for(int j=0;j<8;j++) {
					boolean flag =false;
					for(int k=0;k<n/2;k++) {
						if((j+n-k-1)>=8 || (j+k)>=8) {
							flag=true;
							break;
						}
						if(map[j+k][i]!=map[j+n-k-1][i]) {
							flag=true;							
						}
					}
					if(!flag) {
						cnt++;
						//System.out.println(i+","+j);
					}
				}
			}
			
			System.out.println("#"+(tc+1)+" "+cnt);
		}
	}
}
728x90

+ Recent posts