Koala - 5기/기초 알고리즘 스터디
[백준 / python] 5789번 한다 안한다
Juno7
2022. 2. 6. 16:57
https://www.acmicpc.net/problem/5789
5789번: 한다 안한다
첫째 줄에는 테스트 케이스의 개수 N이 주어진다. (1 ≤ N ≤ 1000) 각 테스트 케이스는 한 줄로 이루어져 있으며, 0과 1로 이루어진 문자열이 주어진다. 문자열의 길이는 항상 짝수이고, 1000보다 작
www.acmicpc.net
문제분석
문제를 따라서 그대로 풀이하면 스택을 사용해야할 것 같지만 결국 마지막 원소만 비교하면 되기 때문에 단순히 마지막 문자열이 팰린드롬인지 아닌지만 판단하면 된다. 문자열로 받으라고 써있기는 하지만 팰린드롬인지를 판단하는 것이기 때문에 리스트로 받아도 무방하다.
코드
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문을 통해 결과를 출력하도록 하였다.