백준 10988번 문제
팰린드롬인지 확인하기
문제

풀이
1.
팰린드롬을 찾는 문제이다.
팰린드롬이란 가운데를 기준으로 앞뒤가 같은 말 즉 기러기 이런거 같다.
우영우인가? 이 문제는 우영우 문제라고 하겠다.
사실 이 문제도 쉽게만 생각하자면,
결국 인풋은 문자이고 그에 따라서 좌우가 동일한지 즉
리스트로 문자를 문자열로 분해한후, 홀수면 나머지로 짝수면 /2 해서 반이 동일한지를 찾으면 되지않나 싶다.
정리해보자면
리스트의 len의 절반만큼 반복하는 반복문을 작성한다. 이때 홀수이면 나머지로 한다.
좌측과 우측을 매개변수로 잡고 각각 i와 - (i+1)을 한다. 이렇게 되면 0번 인덱스와 -1번 인덱스 비교가 가능하게한다.
즉 홀수 5라면, 나머지인 2번 반복할 것이고, 0번 인덱스와 -1번 인덱스 가 동일하고, 1번 인덱스와 -2번 인덱스가 동일하면 팰린드롬으로 1을 프린트한다.
짝수 6이라면 3번 반복 할것이다.
>> 정답을 맞긴 맞았는데 좀더 간편한 방법이 있을거 같아서 찾아보니 슬라이싱 문법을 이용할 수도 있다.
2.
슬라이싱 문법을 사용해서 좀더 간편하게 코드를 짤 수 있었다.
사실 슬라이싱 문법을 잘 몰라서 생각을 못해냈다.
seqquence[start:stop:step]으로 나뉘는데,
이때 word[::-1]이면, 이는 즉 처음부터 끝까지 -1번을 기준으로 거꾸로 이동한다 라는 뜻이다.
즉 반대방향이니까 -1은 0으로 -2는 1로 가는것이다.
슬라이싱 문법에 대해서는 조금더 자세하게 공부를 해봐야겠다.
이렇게 되면 인풋을 받고 if로 word == word[::-1] 면 1, 아니면 0 으로 하면 될듯 하다.
결과
직접 푼 결과
import sys
word = sys.stdin.readline().strip()
result = 1
for i in range(len(word)//2):
if word[i] != word[-(i+1)]:
result = 0
break
print(result)
슬라이싱을 적용해 본 결과
import sys
word = sys.stdin.readline().strip()
print(1 if word == word[::-1] else 0)
Coding_Test/백준/Bronze/10988. 팰린드롬인지 확인하기 at main · K-MarkLee/Coding_Test
Coding_Test/백준/Bronze/10988. 팰린드롬인지 확인하기 at main · K-MarkLee/Coding_Test
This is an auto push repository for Baekjoon Online Judge created with [BaekjoonHub](https://github.com/BaekjoonHub/BaekjoonHub). - K-MarkLee/Coding_Test
github.com
'코딩테스트 > BaekJoon' 카테고리의 다른 글
| 백준 파이썬 코딩테스트 (크로아티아 알파벳) (1) | 2025.08.04 |
|---|---|
| 백준 파이썬 코딩테스트 (단어 공부) (2) | 2025.08.01 |
| 백준 파이썬 코딩테스트 (별 찍기 - 7) (3) | 2025.07.30 |
| 파이썬 코딩테스트 (킹, 퀸, 비숍, 아니트, 폰) (3) | 2025.07.24 |
| 백준 파이썬 코딩테스트 (새싹) (0) | 2025.07.22 |