최댓값이 중복될 경우 잘못된 인덱스가 가져와질 수 있다는 생각을 하지 못했음.
❗해결: number_list에서 사용했던 숫자들과 필요없는 숫자들은 제거하기로 함.
테스트9,10번이 시간초과로 통과하지 못함.
number: 문자열 형식으로 숫자
k: 제거할 수의 개수
answer: number에서 k 개의 수를 제거했을 때 만들 수 있는 수 중 가장 큰 숫자
number_list : number을 list형식으로 바꾼 것
maxnum: 정해진 index사이에서 가장 큰 숫자
count: number의 길이에서 k만큼 뺀 수
count가 0이 될 때까지 while문을 반복한다.
만약 count가 1이 아니라면 number_list에서 자릿수를 보장할 수 있는 수(count)까지의 인덱스 안에서 max값을 뽑아 maxnum에 넣어준다.
그리고 answer에 maxnum을 문자열로 바꿔 넣어 더해주고 count에 -1을 해준뒤 number_list에서 사용했던 숫자들과 필요없는 숫자들은 제거한다.
만약 count가 1이라면 전체 number_list에서 max값을 뽑아 maxnum에 넣어주고 answer에 maxnum을 문자열로 바꿔 넣어 더해주다.
그리고 count에 -1을 해주면 count가 0이되어 반복문을 빠져나온다.
❗해결: 시간이 너무 많이 걸려서 해결하려면 max함수를 사용하지말고 그리디하게 풀라고 하게 풀어야한다고 한다. 테스트 6,7,8,9,10 시간이 답이 없는걸보니...다음에 풀어야겠다...
🔗프로그래머스 - 큰 수 만들기
https://programmers.co.kr/learn/courses/30/lessons/42883