1) SW Expert Academy 정책상 문제 자체를 퍼가는 것은 금지되며 링크와 출처로 명시해 주시기 바랍니다.
2) 문제에 대한 본인의 풀이에 대해서는 개인 학습 등 상업적 용도가 아닌 경우에만 문제 출처와 함께 게시가 가능합니다.
※ 저작권 이슈가 있을 시 법적 제재를 받을 수 있으니 참고하여주시기 바랍니다.
문제 설명
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
나의 풀이
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 test_case = 1; test_case <= T; test_case++) {
int len = sc.nextInt();
char[][] charArr = new char[8][8];
for (int x = 0; x < 8; x++) {
String line = sc.next(); // 한 줄을 입력받음
for (int y = 0; y < 8; y++) {
charArr[x][y] = line.charAt(y);
}
}
int count = 0;
// 행 검사
for (int x = 0; x < 8; x++) {
for (int i = 0; i <= 8 - len; i++) {
StringBuilder text = new StringBuilder();
for (int y = i; y < i + len; y++) {
text.append(charArr[x][y]);
}
String original = text.toString(); // 원본 문자열 저장
String reversed = text.reverse().toString();
if (original.equals(reversed)) {
count++;
}
}
}
// 열 검사
for (int y = 0; y < 8; y++) {
for (int i = 0; i <= 8 - len; i++) {
StringBuilder text = new StringBuilder();
for (int x = i; x < i + len; x++) {
text.append(charArr[x][y]);
}
String original = text.toString(); // 원본 문자열 저장
String reversed = text.reverse().toString();
if (original.equals(reversed)) {
count++;
}
}
}
System.out.println("#" + test_case + " " + count);
}
}
}
reverse()는 String 클래스에서 지원되지 않음. 문자열을 뒤집기 위해서는 StringBuilder를 사용해야 함.
아래 그림은 문자열을 거꾸로 뒤집는 여러가지 방법들
[참고자료]
'👨💻 Coding Test > Java' 카테고리의 다른 글
[SW Expert Academy/Java/D3] 1220.Magnetic (2) | 2024.11.12 |
---|---|
[SW Expert Academy/Java/D3] 1217.거듭 제곱 (0) | 2024.11.12 |
[SW Expert Academy/Java/D3] 1213.String (0) | 2024.11.08 |
[SW Expert Academy/Java/D3] 1209.Sum (0) | 2024.11.08 |
[SW Expert Academy/Java/D3] 1208.Flatten (0) | 2024.11.06 |