풀이
/**
* 큰 수 만들기
* 탐욕법
* https://programmers.co.kr/learn/courses/30/lessons/42883?language=javascript
*/
function solution(number, k) {
var answer = [];
let i = 0, j = 0;
while(i < k) {
if (answer.length === 0 || (number[j] && answer[answer.length - 1] >= number[j])) {
answer.push(number[j]);
j++;
} else {
answer.pop();
i++;
}
}
return answer.join("") + number.slice(j);
}
자릿수가 큰 숫자의 크기가 커질수록 전체 수의 크기도 커진다.
예를 들어 3924 에서 1개를 빼서 가장 큰 수를 만든다고 했을 때, 가장 작은 숫자는 2 이지만 2보다 큰 3이 1000의 자리 수 이므로 3을 삭제하는 편이 924로 더 큰 수가 된다.
그런데 만약 3924 가 아닌 3294 에서 1개를 삭제해야한다면, 3을 삭제해버리면 294로 2를 삭제한 394보다 더 작아져버린다. 결국 자리수가 큰 숫자가 커질 수 있도록 하는 방식으로 접근하는 것이 핵심이다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][자바스크립트][Level1] 서울에서 김서방 찾기 (0) | 2022.01.09 |
---|---|
[프로그래머스][자바스크립트][Level2] 구명보트 (0) | 2022.01.08 |
[프로그래머스][자바스크립트][Level1] 문자열 내림차순으로 배치하기 (0) | 2022.01.06 |
[프로그래머스][자바스크립트][Level1] 2016년 (0) | 2022.01.06 |
[프로그래머스][자바스크립트][Level1] 두 개 뽑아서 더하기 (0) | 2022.01.06 |
댓글