-
[백준] 10988번 팰린드롬인지 확인하기Algorithm Study/Python 2024. 1. 28. 21:32
https://www.acmicpc.net/problem/10988
풀이
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
다양한 해결책이 있을 수 있다.
뒤집어진 문자열을 만들어서 비교, 양 끝을 비교해서 같으면 잘라낸 뒤 마지막에 남는 길이가 0 또는 1인지 확인
양쪽에서부터 같은 문자인지 확인 등
나는 마지막에 이야기한 양쪽에서부터 문자를 확인하여 같은 문자면 1칸씩 더하고 빼는 방법을 사용해보려고 한다.data = input() answer = 1 for idx in range(len(data)//2): if data[idx] != data[len(data) - 1 - idx]: answer = 0 break print(answer)
문자열이 똑같은지 확인하면 되기 때문에 길이의 /2 한 몫 만큼만 확인하면 된다.
짝수인 경우 abccba -> 3
홀수인 경우 level -> 2 (홀수 마지막에 남는 1글자는 확인할 필요가 없다.)for 문을 위에 언급한 길이의 /2만큼 수행하는 동안
서로 같은 글자인지 비교하면 된다.
0 == len - 1 (마지막 문자는 len - 1)
1 == len - 2
2 == len - 3
3 == len - 4
....'Algorithm Study > Python' 카테고리의 다른 글
[백준] 2309번 일곱난쟁이 (1) 2024.02.26 [백준] 1159번 농구 경기 (1) 2024.01.28 [백준] 1343번 폴리오미노 (0) 2024.01.16 [백준] 11655번 ROT13 (1) 2024.01.16 [정올] 주사위 던지기1 (0) 2021.10.15