날짜: 2022년 1월 31일 오후 5:51
코드
Algorithm/42883.py at main · Junroot/Algorithm
풀이
가장 앞 자리수가 큰 것이 중요하다는 점을 파악하면 해결하기 쉽다. k개를 지운다는 뜻은 (number의 길이) - k 개의 숫자를 선택해서 수를 만든다고 접근하는 것이 나에게는 더 쉬웠다.
n개의 숫자 중 k개의 숫자를 선택해야될 때, 제일 앞 자리 숫자는 [0, n - k) 범위의 인덱스 중에 선택해야된다. 따라서 이 범위 중에 가장 큰 수를 선택하면 된다.
사실, 풀이법은 금방 생각했는데 처음에 재귀 함수를 이용하여 구현을 했다가 계속해서 시간 초과가 발생했다. 가능하면 재귀 함수보다 loop를 사용하는 것이 좋겠다는 생각이 들었다. 또한 number를 int형의 리스트로 바꾸는 과정에서 시간이 많이 걸리는 문제도 발생했다. python은 문자끼리 비교가 가능하니 굳이 int형으로 바꿀 필요가 없었다. 가능하면 타입 전환 없이 풀 수 있는지 확인하는 버릇을 가져야겠다.