프로그래밍/알고리즘 풀이
[node.js] 체육복 ( 프로그래머스 레벨1 )
카카수(kakasoo)
2021. 6. 25. 17:02
반응형
// 프로그래머스 level1 체육복
function solution(n, lost, reserve) {
var answer = 0;
let array = new Array(n).fill(1);
lost.map((losted, i) => {array[losted - 1]--});
reserve.map((rserv, i) => {array[rserv - 1]+= 1});
let count = 0;
for (let i = 0; i < array.length; i++) {
if (array[i] > 0) {
count++;
}
else if (array[i] === 0 && array[i+1] > 1) {
count++;
array[i+1]--;
}
else if (array[i] === 0 && array[i-1] > 1) {
count++;
array[i-1]--;
}
}
answer = count;
return answer;
}
그리디 문제는 항상 운에 의존해야 하는 부분이 있다. 다행히 거스름돈 구하는 것 만큼이나 간단한 문제였다.
내 친구가 이 문제를 풀고 있어서 같이 풀어봤는데, 친구는 심히 신기한 방법으로 이 문제를 풀려고 시도했다.
나는 그게 안 될 거라고 생각했는데, 그렇게 해도 정답이 구해지는 것을 봤다.
되게 어려운 방법이었던 거 같은데, 어떻게든 풀리는 것을 보면, 참... 프로그래밍에 정답은 없다.
반응형