여름의 서재

[프로그래머스] 큰 수 만들기 본문

알고리즘/프로그래머스

[프로그래머스] 큰 수 만들기

엉아_ 2021. 12. 7. 00:26
728x90

📕 문제

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

 

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

 

programmers.co.kr

 

💡 풀이법

1. 가능한 한 앞에 가장 큰 수가 오도록 해야 하기 때문에 가능한 인덱스(제거한 수의 개수까지 생각한 인덱스)까지 for문을 돌면서 가장 큰 수를 찾는다.

2. 만약 9를 만나면 9는 가장 큰 수이기 때문에 뒤를 더 볼 필요가 없기 때문에 break를 한다.

3. for문이 끝나고 나면 k를 +1 해준다. k가 number의 길이와 같아지면 수를 완성한 것이기 때문에 while문을 종료한다.

(k = 제거한 수 + 선택한 수 = number의 길이)

 

def solution(number, k):
    new = []
    idx = -1
    while k < len(number):
        m = '0'
        for i in range(idx+1,k+1):
            if m < number[i]:
                idx = i
                m = number[i]
                if m == '9': 
                    break

        new.append(m)
        k += 1
        
    return "".join(new)
Comments