1223v

[BOJ] Python 회문(17609) 본문

PS

[BOJ] Python 회문(17609)

1223v 2025. 2. 20. 02:28

https://www.acmicpc.net/problem/17609

 

 

 

히든 케이스를 잘 고려해야하는 문제이다.

또한, 파이썬은 시간 초과 상황이 발생할 수 있으므로 잘 확인하면 풀어야 한다.

 

import sys
input = sys.stdin.readline

TC = int(input())

for _ in range(TC):
    s = input().rstrip()

    if s == s[::-1]:
        print(0)
        continue
    start = 0
    end = len(s) - 1


    while start <= end:
        if s[start] == s[end]:
            start += 1
            end -= 1
        else:
            # 오른쪽 문자 제거 후 회문 검사
            temp1 = s[start:end]
            # 왼쪽 문자 제거 후 회문 검사
            temp2 = s[start+1:end+1]

            if temp1 == temp1[::-1] or temp2 == temp2[::-1]:
                print(1)  # 유사회문인 경우
                break
            else:
                print(2)  # 회문도, 유사회문도 아닌 경우
                break
    else:
        print(0)  # 회문인 경우

 

 

 

회고.

예외 상황이 너무 많고 히든케이스가 너무 많아 틀릴 수 있는 가능성이 너무 높았던거 같다...

 

728x90