시간&메모리 제한
문제
입력&출력
문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Back_17609 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
String tmp = br.readLine();
if(palindrome(tmp)) {
sb.append("0\n");
}else if(palindrome2(tmp)) {
sb.append("1\n");
}else {
sb.append("2\n");
}
}
System.out.println(sb);
}
private static boolean palindrome(String tmp) {
int left = 0;
int right= tmp.length()-1;
while(left<=right) {
if(tmp.charAt(left++)!=tmp.charAt(right--)) {
return false;
}
}
return true;
}
private static boolean palindrome2(String tmp) {
int left=0;
int right= tmp.length()-1;
while(left<=right) {
if(tmp.charAt(left)!=tmp.charAt(right)) {
return palindrome(tmp.substring(left+1, right+1)) |
palindrome(tmp.substring(left,right));
}
left++;
right--;
}
return true;
}
}
- 이 문제는 문자열을 이용하는 문제입니다.
- 약간의 재귀를 포함시켜 코드를 짯습니다.
- 처음에는 문자열의 길이를 이용해 홀수 인지 짝수인지를 판단해서 해결을 하려고 했는데, 길이의 고정된 크기로 인해서 1개 지워도 되는 경우를 해결하기 어려웠습니다.
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_5052 전화번호 목록(자바) / 문자열 (0) | 2021.07.28 |
---|---|
백준_5525 IOIOI(자바) / 문자열 (0) | 2021.07.26 |
백준_5430 AC(자바) / 문자열 (0) | 2021.07.24 |
백준_19583 싸이버개강총회(자바) / 문자열 (0) | 2021.07.23 |
백준_14425 문자열 집합(자바) / 문자열 (0) | 2021.07.22 |