728x90
https://www.acmicpc.net/problem/15927
15927번: 회문은 회문아니야!!
팰린드롬이란 앞으로 읽으나 뒤로 읽으나 같은 문자열을 말한다. 팰린드롬의 예시로 POP, ABBA 등이 있고, 팰린드롬이 아닌 것의 예시로 ABCA, PALINDROME 등이 있다. 같은 의미를 가지는 여러 단어들을
www.acmicpc.net
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 |