회문이란 앞에서 읽으나 뒤에서 읽으나 동일한 문자열을 의미한다. 어떤 문자열이 주어졌을 때 회문인지 판별하는 방법은 아래와 같다.
s=input().upper()
size=len(s)
for j in range(size//2):
if s[j]!=s[-1-j]:
print("NO") # 회문 아님
break
else:
print("YES") # 회문
위에서 s[-1-j] 같은 모습을 볼 수 있는데
이는 파이썬의 인덱싱 방식 중 하나로, 리스트나 문자열에서 뒤에서 첫 번째 요소(마지막 요소)를 의미한다.
s="hello"
print(s[-1]) # 'o'
print(s[-2]) # 'l'
print(s[-3]) # 'l'
반복문 뿐만 아니라 슬라이싱 방식으로도 회문 문자열을 판별할 수 있다.
if s == s[::-1]: # 문자열을 뒤집어서 비교
print("YES")
else:
print("NO")
파이썬에서 슬라이싱을 활용하면 s[::-1]처럼 간단한 방식으로 문자열을 뒤집을 수 있다.
(step=-1이므로 오른쪽에서 왼쪽으로 읽는다)
'알고리즘(파이썬)' 카테고리의 다른 글
append()와 +의 차이 (0) | 2025.02.12 |
---|---|
자바와 다른 파이썬 (1) | 2025.02.11 |
소수 찾기 & 숫자 뒤집기 (0) | 2025.02.11 |
소수 개수 구하기(에라토스테네스의 체) (0) | 2025.02.11 |
자릿수의 합 구하기 (0) | 2025.02.11 |