코딩테스트/SWEA
[Python, 파이썬] SWEA 4522. 세상의 모든 팰린드롬
알코딩
2024. 11. 11. 21:13
?라는 와일드카드가 있는 특정한 패턴이 주어질 때, 이에 매치되는 팰린드롬을 찾는 문제.
T = int(input()) # 테스트 케이스의 수 T
for test_case in range(1, T+1):
word = list(input()) # 패턴 입력받기
N= len(word) # 패턴 길이 구하기
result = "Not exist"
for i in range(N):
if(word[i]=="?"): # 와일드 카드이면
word[i] = word[N-(i+1)] # 같은 위치의 문자로 대체
if(word==word[::-1]): # 대칭되면
result = "Exist" # 팰린드롬 존재!
print("#%d %s" %(test_case, result))
[문제풀이]
?는 임의의 문자로 대체될 수 있는 와일드 카드다.
if(word[i]=="?"): # 와일드 카드이면
word[i] = word[N-(i+1)] # 같은 위치의 문자로 대체
그래서 for문을 돌려서 ? 발견 시 대칭되는 위치의 문자로 대체 해준다.
그리고 이를 역순으로 읽은 값과 원 문자열이 같으면 펠린드롬이 존재한다!