Lv2 프로그래머스(Programmers)[Python][파이썬] 큰 수 만들기

"""
출처:프로그래머스,
https://school.programmers.co.kr/learn/courses/30/lessons/42883
"""
# 풀이 과정
def solution(number, k):
# 앞에서부터 제일 작은 수 k개
from collections import deque
t = deque(list(number))

result = []

while k:
n = t.popleft()

if len(result) == 0:
result.append(n)

elif len(t) == 0:
if int(result[-1]) < int(n):
while True:
result.pop()
k -= 1
if len(result) == 0 or k == 0:
result.append(n)
break
elif int(result[-1]) >= int(n):
result.append(n)
break
else:
if int(result[-1]) >= int(n):
result.append(n)
if k > 0:
return "".join(result[:len(result) - k])
else:
if int(result[-1]) < int(n):
while True:
result.pop()
k -= 1
if len(result) == 0 or k == 0:
result.append(n)
break
elif int(result[-1]) >= int(n):
result.append(n)
break
else:
if int(result[-1]) >= int(n):
result.append(n)

final = "".join(list(result) + list(t))
return final