백준 문제 링크
다음 수 구하기
- A를 뒤에서부터 살펴보면서, 현재 자릿수가 이전 자릿수보다 큰 지점을 찾는다.
이 문제에서는 (2,4), (4,7), (7,9), (9,9), (9,3) 여기서 break한다.
이 때 i = 6, num[i] = 3- 만약 이런 부분이 한 곳도 없다면 'BIGGEST'를 출력하고 continue.
- 이번에는 A를 뒤에서부터 살펴보면서, num[i] == 6 보다 크다면 여기서 break한다.
이 때 j = 10, num[j] = 4- 그 다음 num[i]와 num[j]의 위치를 바꿔주고,
num[i+1]의 뒤쪽을 오름차순 정렬하여 바꿔준다.- num을 출력하면 끝!
T = int(input())
for _ in range(T):
num =list(map(int, input()))
n = len(num)
for i in range(n-2, -1, -1):
if num[i] < num[i+1]:
break
else:
print('BIGGEST')
continue
for j in range(n-1, i, -1):
print(num[j], num[i])
if num[j] > num[i]:
break
num[i], num[j] = num[j], num[i]
num[i+1: ] = sorted(num[i+1:])
print(''.join(map(str, num)))