프로그래머스 : 큰 수 만들기

2021. 10. 28. 18:22문제풀기/프로그래머스

https://programmers.co.kr/learn/courses/30/lessons/42883

 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr

이전 인덱스(start)부터 len(number) - 아직 남은 채워넣어야 할 문자열의 길이 까지 중에서 가장 큰 수를 answer에 넣고, 해당 인덱스 + 1을 start로 설정하는 방식으로 매 번 가장 큰 수를 찾아 넣으면 된다.

이 때, 시간 초과를 방지하기 위해, for문 내에서 가장 큰 수를 찾았는데 해당 수가 9이면 더 큰 수는 없기 때문에 바로 for문을 빠져 나오도록 한다.

def solution(number, k):
    answer = ''
    want_length = len(number) - k
    number = list(number)
    start = 0
    
    while want_length>0:
        maximum = '-1'
        max_index = -1
        
        for i in range(start,len(number)-want_length+1):
            if number[i] > maximum:
                max_index = i
                maximum = number[i]
                if maximum == '9':
                    break
                
        answer += maximum
        start = max_index + 1
        want_length -= 1
    return answer