오늘 푼 문제
1. 체육복 / Lv.1 / 시간 : 21분
programmers.co.kr/learn/courses/30/lessons/42862?language=javascript
function solution(n, lost, reserve) {
var answer = 0;
const reserveObj = reserve.reduce((acc,cur)=>{
if(lost.includes(cur)) lost.splice(lost.indexOf(cur),1);
else acc[cur] = 1;
return acc;
},{});
let nLost = lost.length;
lost.forEach(n=>{
if(reserveObj[n-1]){
reserveObj[n-1] --;
nLost--;
}else if(reserveObj[n+1]){
reserveObj[n+1] --;
nLost--;
}
});
answer = n - nLost;
return answer;
}
헤맸던 부분
문제 조건 중 다음과 같은 부분이 있다.
여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다.
따라서 여벌 체육복을 가져온 애가 잃어버린 경우를 먼저 고려해서 대여 가능 한 목록에서 빼줘야 한다. 안 그러면 앞 번호가 스틸해 갈 수 있음.
'알고리즘 문제풀이' 카테고리의 다른 글
[프로그래머스] 고득점 키트 - 그리디3 (0) | 2020.12.02 |
---|---|
[프로그래머스] 고득점 키트 - 그리디2 (0) | 2020.12.01 |
[프로그래머스] 고득점 키트 - 완전탐색3 (0) | 2020.11.27 |
[프로그래머스] 고득점 키트 - 완전탐색2 (0) | 2020.11.24 |
[프로그래머스] 고득점 키트 - 완전탐색1 (0) | 2020.11.18 |