Hyunseok
현재 사이트는 2024년 11월 이후로 업데이트 되지 않습니다. 새 글은 블로그로 확인해주세요. 블로그로 이동
프로그래밍/파이썬 [파이썬] 2992 크면서 작은 수
2022. 1. 28. 05:15

현재 사이트는 2024년 11월 이후로 업데이트 되지 않습니다. 새 글은 블로그로 확인해주세요. 블로그로 이동

새벽에 졸면서 푼다고 어떻게 풀었는지 기억은 나지 않는다

 

그래도 좀 고민해서 아, 이렇게 풀면 풀리긴 풀리겠네!

 

해서 그거 생각하고 제출을 보니 역시나 그렇게 풀었다.. 

 

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을 넣어준다..

 

코드의 효율성을 보면 제정신이 아니기 때문에..

 

설마.. 이렇게? 했는데 진짜 이렇게 풀었을 줄은.. 

 

시간 나면 좀 더 효율적으로 풀 수 있는 방법이 없나 생각해봐야겠다


프로그래밍/파이썬의 다른 글