목표량
- 시간 제한: 1초
엘리스 토끼는 목표량을 정해 수학 문제를 열심히 풉니다. 목표량은 정수입니다.
내일 풀 수학 문제의 개수는 오늘 푼 문제 개수의 수와 숫자의 구성이 같으면서, 오늘 푼 문제 개수의 수보다 큰 수 중 가장 작은 수입니다.
예를 들어, 오늘 67문제를 풀었으면 다음 날 76문제를 풉니다.
오늘 푼 문제의 개수를 줬을 때 다음날 풀 문제의 개수를 출력하는 프로그램을 작성하세요.
지시사항
입력
- 첫 번째 줄에 오늘 푼 문제의 개수인 자연수 을 입력합니다.
- 정답이 반드시 있는 경우만 입력값으로 주어집니다.
출력
- 다음날 풀 문제의 개수를 출력합니다.
입력 예시
364Copy
출력 예시
436
정답 코드:
#퀵 소트 정렬 씀
def quicksort(arr, start, end):
if start > end:
return
i = start - 1
pivot = arr[end]
for j in range(start, end):
if arr[j] <= pivot:
i += 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[end] = arr[end], arr[i + 1]
quicksort(arr, start, i)
quicksort(arr, i + 2, end)
return arr
#뒤에서부터 오름차순인지 확인후 분기점에서 교환하고 정렬
n = input()
before = list(n)
for i in range(len(before) - 2, -1, -1):
if before[i] < before[i + 1]:
# 정리할 순간까지 왔다면, 피봇으로 찍고 뒤에 있는 숫자 중 피봇보다 큰 제일 작은 수를 찾음
pivot = before[i]
smallest = i + 1
for j in range(i + 1, len(before)):
if before[j] > pivot and before[j] <= before[smallest]:
smallest = j
before[i], before[smallest] = before[smallest], before[i]
before[i + 1:] = quicksort(before[i + 1:], 0, len(before[i + 1:]) - 1)
break
print(''.join(before))
'문제 풀이' 카테고리의 다른 글
앨리스 코드 챌린지 2번 문제 (0) | 2024.07.10 |
---|---|
행렬 곱셈 (0) | 2024.07.09 |
n^2 배열 자르기 (0) | 2024.07.08 |
86. H-Index (파이썬) (1) | 2024.07.05 |
85. 연속 부분 수열 합의 개수(파이썬) (0) | 2024.07.04 |