알고리즘/인프런: 파이썬 알고리즘 문제풀이

탐색&시뮬레이션 문제 #1. 회문 문자열 검사

bearbrick 2022. 5. 27. 13:40

*이 풀이는 인프런: 파이썬 알고리즘 문제풀이 강좌에 기반하였습니다.

 

 

 

내 풀이

 

1. 대소문자를 구별하지 않는다고 했으므로 문자열을 전부 소문자로 변경

2. 앞에서 읽거나 뒤에서 읽거나 같은 경우를 찾기 위해서 문자열의 슬라이스 기능을 사용  

 

import sys
sys.stdin=open("input.txt","rt")

n=int(input())

for i in range(n):
    string = input()
    string = string.lower()
    if string==string[::-1]:
        print('#%d YES' %(i+1))
    else:
         print('#%d NO' %(i+1))

 

 

 

강사님 풀이

 

import sys
sys.stdin=open("input.txt","rt")

n=int(input())

for i in range(n):
    s=input()
    s=s.upper()
    size=len(s)
    for j in range(size//2):
        if s[j]!=s[-1-j]:
            print("#%d NO" %(i+1))
            break
    else:
        print("#%d YES" %(i+1))

 

 

 

배운 점

 

1. 파이썬의 슬라이스 기능을 이용하는 것도 좋지만, 직접 구현해보자.

2. 파이썬에서 문자열을 뒤에서부터 인덱스를 붙인다면, 맨끝부터 -1, -2, ... 순으로 인덱스를 붙인다.