728x90
https://www.acmicpc.net/problem/15927
728x90
메모리: 19,460 KB , 시간: 216 ms
사용 알고리즘: 애드 혹, 문자열
내 생각
팬린드롬은 모든 문자열이 같지 않은 이상 문자 하나만 빠져도 팰린드롬이 아니라는 것만 알고 있으면 쉽게 풀 수 있는 문제였다...
이 생각을 못해서 뻘 짓 엄청 함.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
/*
주어진 문자열이 팰린드롬이 아닌 경우, 답은 '문자열 길이'
주어진 문자열이 모두 같은 문자로 이루어진 경우 답은 '-1'
팰린드롬이지만, 모두 같은 문자열로 이루어지진 않은 경우, 문자 하나만 제외해도 팰린드롬은 깨짐. 답은 '문자열 길이 - 1'
*/
// 하나의 문자열 입력
char[] string = br.readLine().toCharArray();
// 팰린드롬인지 확인
int result = -1;
int s = 0, e = string.length - 1;
while(s <= e) {
if(string[s] != string[e]) { // 팰린드롬이 아닐 경우
result = string.length;
break;
}
s++;
e--;
}
if(result == -1) { // 팰린드롬일 경우 모든 문자가 같은지 확인
for (int i = 1; i < string.length; i++) {
if(string[0] != string[i]) { // 같은 문자 아닌걸 발견했다면
result = string.length - 1; // 문자열 길이 - 1이 답
break;
}
}
}
System.out.println(result);
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 20440] 🎵니가 싫어 싫어 너무 싫어 싫어 오지 마 내게 찝쩍대지마🎵 - 1 (java) (1) | 2023.12.18 |
---|---|
[백준, BOJ 1749] 점수따먹기 (java) (0) | 2023.12.15 |
[백준, BOJ 2110] 공유기 설치 (java) (0) | 2023.12.08 |
[백준, BOJ 21610] 마법사 상어와 비바라기 (java) (1) | 2023.12.07 |
[백준, BOJ 20210] 파일 탐색기 (java) (0) | 2023.11.28 |