본문 바로가기
코딩테스트 파이썬/파이썬 프로그래머스 2단계

큰 수 만들기

by 세용용용용 2023. 5. 25.

나의 첫번쨰 코드

def solution(number,k):
    answer = ''
    result_num_len = len(number)-k

    max_number_index = 0
    for i in range(len(number)):
        if i == (len(number) - (len(number)-k))+1:
            break

        if number[i] > number[max_number_index]:
            max_number_index=i
        else:
            continue
    #print(max_number_index)

    remove_list = []
    for i in range(0,max_number_index):
        remove_list.append(number[i])
    #print(remove_list)
    number = number[max_number_index:]
    #print(number)
    index = 1
    number = list(number)
    while True:
        if len(remove_list) == k or index == len(number)-1:
            break

        if number[index] < number[index+1]:
            remove_list.append(number.pop(index))
            index = 1
        else:
            index +=1
   
    if len(number) > result_num_len:
        for i in range(len(number)-result_num_len):
            number.pop(-1)

    answer = ''.join(number)
    #print(number)
    #print(answer)
    return answer
solution("4177252841",4)

ㅋㅋㅋ 다짜고 나서부터 이건 무조건 타임아웃 생각하고 있었긴 했음 ....

아니나 다를까 .... ㅎㅎㅎㅎ.ㅎ.ㅎㅎ.ㅎ.ㅎ

 

수정한 코드

def solution(number, k):
    answer = ''
    result_list = []

    for i in number:
        while k>0 and result_list and result_list[-1] < i:
            result_list.pop()
            k-=1
        result_list.append(i)

    answer = ''.join(result_list)
    if len(result_list) > len(number)-k:
        answer = answer[:len(number)-k]
    print(answer)
    return answer
solution("9421",2)

하하하하 아직은 진짜 부족하다 더 성장해야쥐이이이이

'코딩테스트 파이썬 > 파이썬 프로그래머스 2단계' 카테고리의 다른 글

멀리 뛰기  (0) 2023.05.25
N개의 최소공배수  (0) 2023.05.25
점프와 순간 이동  (1) 2023.05.24
예상 대진표  (0) 2023.05.23
구명보트  (0) 2023.05.23