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

README·2022년 8월 8일
0

파이썬 PS풀이

목록 보기
95/136

문제 설명

어떤 수를 입력받고 그 수에서 K자리를 제거했을 때 만들 수 있는 가장 큰 수를 만드는 문제입니다.

작동 순서

  1. 숫자를 입력받습니다.
  2. 숫자를 앞자리부터 뒷자리와 비교해가며 뒷자리 숫자가 앞자리숫자보다 더 큰 경우 앞자리숫자를 지워 나갑니다.
  3. 숫자를 맨 앞부터 맨뒤까지 모두 비교하며 K개의 숫자를 제거한 경우 그 수를 출력합니다.
  4. 위 과정에서 K개의 숫자를 제거하지 않은 경우 앞에 있는 숫자들이 뒤에 있는 숫자들보다 크므로 뒷자리부터 남은 개수의 숫자들을 삭제합니다.

코드

def solution(number, k):
    answer = ''
    count = 0
    index = 1
    while True:
        if number[index-1]<number[index]:
            number=number[:index-1]+number[index:]
            count+=1
            if index>1:
                index-=1
        else:
            index+=1
        if count==k or index==len(number): 
            break
    if count!=k:
        number=number[:len(number)-(k-count)]
    return number
profile
INTP 개발자 지망생

0개의 댓글