📝 문제
💡 정수 X가 주어졌을 때,
X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다.
수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다.
예를 들어, 123과 321은 수의 구성이 같다.
하지만, 123과 432는 구성이 같지 않다.
⚙️ 입력 : 첫째 줄에 X가 주어진다. (1 ≤ X ≤ 999999)
X는 0으로 시작하지 않는다.
⚙️ 출력 : 첫째 줄에 결과를 출력한다. 만약 그러한 숫자가 없는 경우에는 0을 출력한다.
2992번: 크면서 작은 수
정수 X가 주어졌을 때, X와 구성이 같으면서 X보다 큰 수 중 가장 작은 수를 출력한다. 수의 구성이 같다는 말은, 수를 이루고 있는 각 자리수가 같다는 뜻이다. 예를 들어, 123과 321은 수의 구성이
www.acmicpc.net
✅ 풀이
x = int(input())
i = 1
while True:
if i >= 1000000:
print(0)
break
else:
if sorted(str(i)) == sorted(str(x)) and i > x:
print(i)
break
i += 1
💡 브루트포스 방법으로 접근했다.
i를 1씩 증가시키며 비교하면서 x와 i를 정렬한 결과가 같다면 구성 원소가 같으므로,
이 때 i보다 x가 크다면 i를 크면서 작은 수로 간주하고 출력 후 멈추도록 했다.
만약 x의 제한 범위인 999999를 넘길 동안 해당 수가 없으면 0을 출력하도록 했다.