https://www.acmicpc.net/problem/5789
문제분석
문제를 따라서 그대로 풀이하면 스택을 사용해야할 것 같지만 결국 마지막 원소만 비교하면 되기 때문에 단순히 마지막 문자열이 팰린드롬인지 아닌지만 판단하면 된다. 문자열로 받으라고 써있기는 하지만 팰린드롬인지를 판단하는 것이기 때문에 리스트로 받아도 무방하다.
코드
t = int(input())
for _ in range(t):
n = list(input())
k = len(n)//2-1
if n[k]==n[-k-1]:
print('Do-it')
else: print('Do-it-Not')
문제풀이
처음에 테스트 케이스의 개수를 t로 받고 n에다가 리스트의 형태로 사용자에게 입력을 받는다. 처음부터 비교하면서 그 비교한 부분을 제거하라고 나와있지만 결국 마지막 부분만 비교하면 되기 때문에 마지막 요소와 그에 대응하는 요소만을 비교해서 결과를 출력하면 된다. 불리언 변수 Flag를 통해 비교할까도 생각해봤지만 그냥 if-else문으로 받아도 무방할 것 같아서 if-else문을 통해 결과를 출력하도록 하였다.
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 10825: 국영수 (0) | 2022.02.06 |
---|---|
[BOJ/python] 11656번 접미사 배열 (0) | 2022.02.06 |
[백준|13732] Falling apples (2) | 2022.02.05 |
[백준/c++] 5218번 알파벳 거리 (2) | 2022.02.04 |
[백준/python] 3986. 좋은 단어 (0) | 2022.01.31 |