Search
Duplicate

큰 수 만들기

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

def solution(number, k): # 맨 앞의 k+1개 숫자를 보고, 그 중 가장 큰 숫자를 취합니다. # 이를 위해 숫자를 몇 개 버려야 하는지를 계산합니다. # 그 뒤의 수부터 동일하게, 버릴 수 있는 숫자가 없어질 때까지 반복합니다. n2idx = {n:i for i, n in enumerate(number)} answer = [] while k > 0: found9 = False # 9를 만나면 바로 처리합니다. for i in range(k+1): if number[i] == '9': answer.append('9') k = k - i number = number[i+1:] found9 = True break if found9: continue s = number[:k+1] mx = max(s) answer.append(mx) idx = s.index(mx) k = k - idx number = number[idx + 1:] if len(number) == k: return ''.join(answer) if number: answer.append(number) return ''.join(answer)
Python
복사

출처

프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges