새벽에 졸면서 푼다고 어떻게 풀었는지 기억은 나지 않는다
그래도 좀 고민해서 아, 이렇게 풀면 풀리긴 풀리겠네!
해서 그거 생각하고 제출을 보니 역시나 그렇게 풀었다..
num = input()
ary = sorted(list(map(int,num.strip())))
k = str(9)
fo = int(k*len(num))
count = 0
for i in range(int(num), fo):
j =str(i)
tempary=sorted(list(map(int,j.strip())))
if tempary == ary:
if i>int(num):
print (i)
count = 1
break
if count == 0:
print(0)
|
일단 자릿수를 따와서 자릿수만큼 9를 만든 뒤
for문을
받은 num값부터 len()*9 값까지 돌린다
(예시 156 기준으로 156 to 999)
그리고 for값을 쭉 돌리다가 ary로 받은 입력값과 for값이 동일해지면
ex. tempary =sorted([1, 6, 5]) = ary[1, 5, 6]
그때 num값과 비교해서 크면 출력 그다음 카운터에 +1을 해주고 for문을 탈출한다
ex. i>int(num) (165>156)
(어차피 작은 수부터 돌렸으니 걸리는 순간 그 숫자가 제일 작은 수)
for문을 나와도 cnt값이 0이면 없다는 뜻이니 0을 넣어준다..
코드의 효율성을 보면 제정신이 아니기 때문에..
설마.. 이렇게? 했는데 진짜 이렇게 풀었을 줄은..
시간 나면 좀 더 효율적으로 풀 수 있는 방법이 없나 생각해봐야겠다
'프로그래밍 > 파이썬' 카테고리의 다른 글
[파이썬] 15649 N과 M (1) feat 띠용하다! (0) | 2022.02.04 |
---|---|
[파이썬] 11053 가장 긴 증가하는 부분 수열 (0) | 2022.02.03 |
[파이썬] 재귀함수를 이해해보자 feat 10829, 1769, 10872, 2447 (0) | 2022.01.27 |
[파이썬] 1541 잃어버린 괄호 (0) | 2022.01.26 |
[파이썬] 1193 분수찾기 feat 멍청멍청 (0) | 2022.01.25 |