[브론즈1]백준 1259번(팰린드롬수) - 코테공부 32일차(2025.02.24)
2025. 2. 24. 10:15
반응형
문제유형
문자열
풀이 방법 도출 과정
1. 앞에서 읽어도 같고 뒤에서 읽어도 같은 수를 찾는 문제
2. 그냥 숫자를 뒤집어 놓고 맞는 것을 고르면 된다. 단, 문자열로 사용해야한다.
시간 복잡도
시간 복잡도는 N(A)이다.
코드 및 간단설명
문자열의 특성을 활용하였다.
while True:
A = list(map(int, input().strip())) # 입력을 문자열로 받아서 리스트 변환
if A == [0]: # 종료 조건
break
if A == A[::-1]: # 리스트를 뒤집어 비교
print('yes')
else:
print('no')
다른 풀이
1) 문자열의 앞뒤를 한 번에 비교
아래 코드는 리스트 전체를 뒤집어 비교하는 대신 문자열의 앞뒤를 한 번에 비교하여 필요할 때는 바로 종료할 수 있으므로 평균적으로 더 빠르다.
while True:
s = input().strip() # 입력받은 문자열 그대로 사용
if s == "0": # 종료 조건: 문자열 "0"이 입력되면 종료
break
is_palindrome = True
n = len(s)
for i in range(n // 2):
if s[i] != s[n - 1 - i]:
is_palindrome = False
break
print("yes" if is_palindrome else "no")
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
[브론즈1]백준 2775번(부녀회장이 될테야) - 코테공부 36일차(2025.02.26) (0) | 2025.02.26 |
---|---|
[브론즈1]백준 2609번(최대공약수와 최소공배수) - 코테공부 35일차(2025.02.25) (0) | 2025.02.25 |
[골드5]백준 9251번(LCS) - 코테공부 31일차(2025.02.23) (0) | 2025.02.23 |
[실버2]백준 11053번(가장 긴 증가하는 부분 수열) - 코테공부 30일차(2025.02.21) (0) | 2025.02.21 |
[실버1]백준 1149번(RGB거리) - 코테공부 29일차(2025.02.20) (0) | 2025.02.20 |