[D3] [S/W 문제해결 기본] 3일차 - 회문1 - 1215
성능 요약
메모리: 21,080 KB, 시간: 130 ms, 코드길이: 980 Bytes
제출 일자
2023-10-26 15:36
출처: SW Expert Academy, https://swexpertacademy.com/main/code/problem/problemList.do
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = 10;
for(int tc = 1; tc <= T; tc++)
{
int n = sc.nextInt();
char[][] arr = new char[8][8];
for(int i = 0; i < 8; i++){
arr[i] = sc.next().toCharArray();
}
int result = 0;
for(int i = 0; i < 8; i++){
for(int j = 0; j <= 8 - n; j++){
String row = "";
String col = "";
for(int k = 0; k < n; k++){
row += arr[i][j + k] ;
col += arr[j + k][i];
}
if(isPalindrome(row)){
result++;
}
if(isPalindrome(col)){
result++;
}
}
}
System.out.println("#" + tc + " " + result);
}
}
private static boolean isPalindrome(String str){
for(int i = 0; i < str.length() / 2; i++){
if(str.charAt(i) != str.charAt(str.length() - i - 1)){
return false;
}
}
return true;
}
}
처음에는 문자열을 만들어주고 펠린드롬을 확인하는 함수를 만들어주었다.
근데 문자열 만들어주는 과정을 생략하고 그냥 바로 확인해주는게 더 빠르고 가독성이 좋음
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = 10;
for(int tc = 1; tc <= T; tc++)
{
int n = sc.nextInt();
char[][] arr = new char[8][8];
for(int i = 0; i < 8; i++){
arr[i] = sc.next().toCharArray();
}
int result = 0, r = 0,c = 0;
for(int i = 0; i < 8; i++){
for(int j = 0; j < 8 ; j++){
r = 0; c = 0;
for(int k = 0; k < n/2; k++){
if(j <= 8 - n && arr[i][j+k] == arr[i][j + n - k - 1]) r ++;
if(i <= 8 - n && arr[i + k][j] == arr[i + n - k - 1][j]) c++;
}
if(r == n /2) result++;
if(c == n/2) result++;
}
}
System.out.println("#" + tc + " " + result);
}
}
}
'알고리즘 - SWEA > D3' 카테고리의 다른 글
[SW expert Academy] SWEA 2817번 부분 수열의 합 자바(Java) (0) | 2023.10.27 |
---|---|
[SW expert Academy] SWEA 1209번 Sum 자바(Java) (0) | 2023.10.26 |
[SW expert Academy] SWEA 1289번 원재의 메모리 복구하기 자바(Java) (1) | 2023.10.26 |
[SW expert Academy] SWEA 5215번 햄버거 다이어트 자바(Java) (0) | 2023.10.25 |
[SW expert Academy] SWEA 2805번 농작물 수확하기 자바(Java) (0) | 2023.10.24 |