728x90
반응형
SMALL
시간 제한 | 메모리 제한 | 문제 티어 | 정답 비율 |
1 초 | 256 MB | 브론즈 II | 65.509% |
📜 문제
알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오.
팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다.
level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.
📥입력
첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.
📤출력
첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.
💡풀이
처음에 내가 풀었던 풀이는 다음과 같다.
import sys
word = sys.stdin.readline().rstrip()
j = -1
count = 0
for i in word:
if i != word[j]:
print(0)
break
j -= 1
count += 1
if count >= len(word) // 2:
print(1)
break
word 변수에 단어를 입력한 다음, for 반복문을 통해 앞에 있는 알파벳과 맨 뒤에 있는 알파벳을 비교하여 어느 하나라도 다르다면 0 출력 후 반복문 탈출한다. 만약 단어의 중간까지 가서도 양쪽에 있는 알파벳이랑 같다면 결국 팰린드롬이므로 1 출력 후 반복문을 탈출하는 식으로 조건문을 구성해봤다.
이렇게 코드를 짜다보니까 "분명 더 쉬운 코드가 있을텐데 "하고 궁금증이 생겨서 다른 사람의 블로그 포스팅을 참고해본 결과, 역시나 더 쉽고 간단하게 풀 수 있었다..😅
import sys
word = sys.stdin.readline().rstrip()
print(0 if word != word[::-1] else 1)
사실상 내 위의 반복문 코드는 '0 if word != word[::-1] else 1'와 비슷하다고 볼 수 있다.
반응형
LIST
'CodingTest > Baekjoon' 카테고리의 다른 글
[백준/Python] 9506번 : 약수들의 합 (0) | 2023.05.23 |
---|---|
[백준/Python] 25206번 : 너의 평점은 (0) | 2023.05.21 |
[백준/Python] 10810번 : 공 넣기 (0) | 2023.05.19 |
[백준/Python] 10812번 : 바구니 (0) | 2023.05.18 |
[백준/Python] 10811번 : 바구니 뒤집기 (0) | 2023.05.17 |