728x90
def f(n):
length = len(n)
if len(n) == 1:
if n == "9":
return 11
else:
return int(n) + 1
k = length // 2
if length % 2 == 0:
num = int(n[:k] + n[::-1][k:])
if num > int(n):
return int(num)
else:
number = str(int(n[:k]) + 1)
if len(number) > k:
num = number[:-1] + number[::-1]
else:
num = number + number[::-1]
return int(num)
else:
num = int(n[:k+1] + n[::-1][k+1:])
if num > int(n):
return int(num)
else:
number = str(int(n[:k+1]) + 1)
if len(number) > k + 1:
number = str(int(number) // 10)
num = number + number[::-1]
return int(num)
else:
num = number[:-1]+ number[::-1]
return int(num)
N = input()
print(f(N))
어렵지는 않았던 것 같다 !
'코딩' 카테고리의 다른 글
[BOJ] 7569 토마토 Python (0) | 2024.01.05 |
---|---|
[BOJ] 2312 수 복원하기 Python (1) | 2024.01.04 |
[BOJ] 11055 가장 큰 증가하는 부분 수열 (1) | 2023.12.17 |
[Atcoder] ABC 333 D - Erase Leaves (1) | 2023.12.17 |
[Atcoder] ABC 329 D - Take Election Quick Report (1) | 2023.11.20 |