<내 코드>
<풀이과정>
문자열의 길이만큼 for문을 돌며 해당 인덱스의 문자가 리스트의 마지막 원소보다 작거나 같으면 리스트에 넣어주고,
보다 크면 경우를 나눠서 리스트의 마지막 원소부터 역으로 순회하며 리스트의 각 원소보다 크면 해당 원소를 리스트에서
제거, k를 1감소 시켜준다. 이때, k가 0이되면 break로 탈출시킨다. 만약 answer의 j번째 원소가 number[i]보다 크면 리스트에
number[i]를 추가시키고 break를 걸어준다. flag를 둔 이유는 for문의 끝까지 number[i]가 추가 되지 않았을경우 추가 해
주기 위함이다. 이렇게 이중 포문을 돌게 되면 원하는 결과값인 k개의 수를 제거한 최대값이 나오거나 내림차순으로 정렬된 answer
리스트가 만들어 지는데 마지막으로 k가 0이될때 까지 pop만 해주고 리스트를 문자열로 변환시키면 원하는 결과값이 return된다.
<느낀점>
코딩을 시작하기 전에 완벽한 알고리즘을 생각해 놓지 않으면, 계속해 반례가 튀어나와 코드를 계속 수정해야 한다는 사실과,
파이썬에서 리스트는 아주 유용하다는 점(초반에 answer을 빈 문자열로 두고 풀었는데 생각보다 까다로워서 리스트로 바꾸었다.)
을 배운 좋은 문제였다.
'코딩테스트' 카테고리의 다른 글
[프로그래머스(Programmers)/Level2](Python) 프린터 (0) | 2020.07.07 |
---|---|
[프로그래머스(Programmers)/Level2](Python) 주식가격 (0) | 2020.07.07 |
[프로그래머스(Programmers)/Level2](Python) 탑 (0) | 2020.07.07 |
[프로그래머스(Programmers)/Level2](Python) 다리를 지나는 트럭 (0) | 2020.07.07 |
[프로그래머스(Programmers)/Level2](Python) 스킬트리 (1) | 2020.07.07 |