Programmers 42883. 큰 수 만들기
Title
Programmers 42883. 큰 수 만들기
Category
AlgorithmTags
Aliases
Programmers 42883. 큰 수 만들기
Created
3 years ago
Updated
last year
문제 유형 | 난이도 | 걸린 시간 | 해결 유무(✅/❌) |
---|---|---|---|
탐욕법(그리디) | lv.2 | 2시간 | ✅ |
설계 방법
k번 동안
숫자 하나를 제거 했을 때 가장 큰 수를 반환함
코드
javascript
function solution(number, k) {
for (let i = 0; i < k; i++) {
number = removeOneNumber(number);
}
return number;
}
function removeOneNumber(number) {
return [...number].reduce((largeNumber, _, i, arr) => {
const createdNumber = [...arr.slice(0, i), ...arr.slice(i + 1)].join('');
return largeNumber < createdNumber ? createdNumber : largeNumber;
}, 0);
}
function solution(number, k) {
for (let i = 0; i < k; i++) {
number = removeOneNumber(number);
}
return number;
}
function removeOneNumber(number) {
return [...number].reduce((largeNumber, _, i, arr) => {
const createdNumber = [...arr.slice(0, i), ...arr.slice(i + 1)].join('');
return largeNumber < createdNumber ? createdNumber : largeNumber;
}, 0);
}
시간 복잡도
- O(k*N)
어려웠던 점
문제를 쉽게 풀었다고 생각했는데, 테스트 케이스에서 시간 초과가 발생했다.
시간 초과를 해결하는 방법을 찾지 못했고, 풀었던 방법에서 다른 방법으로 바꾸는것이 어려웠다.
다른 사람들의 풀이를 봤는데, 이해가 되지 않았다. 뭔가 오늘 따라 뇌가 잘 안돈다 ..