
생각 과정
문자열의 홀수 인덱스만 대문자로 바꾸면 된다? -> 단어 단위로 리셋된다! (1차 실패)
그렇다면 스페이스 한 칸(' ')을 기준으로 삼아야 할 것이고, 해결하는 방법은 다양하겠지만
split() 메서드와 join 메서드를 사용해 단어를 배열의 요소로 쪼개는 방법을 선택했다.
function ascendingOrder(arr) {
return arr.sort((a, b) => a - b);
}
function findMaxSupportNumber(requestArr, money) {
let idx = 0;
while(idx < requestArr.length) {
if (money - requestArr[idx] < 0) break;
money -= requestArr[idx];
idx++;
}
return idx;
}
function solution(d, budget) {
const sorted = ascendingOrder(d);
const answer = findMaxSupportNumber(sorted, budget);
return answer;
}
알게 된 것들
ascendingOrder 함수에서 매개변수에 sort() 함수를 바로 사용하고 있다.
-> 이럴 경우 원본 배열을 직접 변경하기 때문에 원래의 데이터를 해친다. 그리고 이것이 의도하지 않은 부작용을 일으킬 수 있다.
그렇기 때문에 불변성(Immutability)를 지켜야 한다.
-> return arr.slice().sort((a, b) => a - b); 처럼 복제하여 사용하도록 하자.
'문제 풀이 > Programmers' 카테고리의 다른 글
| [프로그래머스] 42862번: 체육복 (JavaScript) (0) | 2025.07.04 |
|---|---|
| [프로그래머스] 12982번: 예산 (JavaScript) (0) | 2025.07.04 |
| [프로그래머스] 76501번: 음양 더하기 (JavaScript) (0) | 2025.07.04 |
| [프로그래머스] 12935번: 제일 작은 수 제거하기 (JavaScript) (0) | 2025.07.04 |
| [프로그래머스] 77484번: 로또의 최고 순위와 최저 순위 (JavaScript) (0) | 2025.07.04 |