반응형
코드
function solution(n, lost, reserve) {
var answer = 0;
let total = [];
//전체 학생을 1로 세팅
for (let i=0; i<n; i++){
total.push(1);
}
//total = [1,1,1,1,1] 모두 1개씩 있음
//여벌옷이 있는 친구들 +1씩 하기
for (let i=0; i<reserve.length; i++){
total[reserve[i]-1]++;
}
//total = [2,1,2,1,2]
//도둑질 당한 친구들 -1씩 하기
for(let i=0; i<lost.length; i++){
total[lost[i]-1]--;
}
//total = [2,0,2,0,2]
//0인 숫자들이, 앞 뒤로 2이상인지 확인하기
for(let i=0; i<n; i++){
if(total[i] === 0){
//앞에 숫자가 2 이상이면
if(i>0 && total[i-1]>=2){
total[i]=1;
total[i-1]-=1;
//뒤에 숫자가 2 이상이면
}else if(i<n && total[i+1]>=2){
total[i]=1;
total[i+1]-=1;
}
}
}
//이제 1 이상인 친구들만 answer의 값을 올려준다
for(let i=0; i<n; i++){
if(total[i]>=1){
answer++
}
}
return answer;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[JS] 알고리즘 기초 정복 1번 - 세 수 중 최솟값 찾기 (0) | 2021.06.28 |
---|---|
[JS] 프로그래머스 1단계 - 모의고사(완전탐색) (0) | 2021.06.09 |
[JS] 프로그래머스 1일 1문제 풀기 - 가운데 글자 가져오기 (0) | 2021.04.24 |
[파이썬] 단계별 문제 풀기 - 15650번 백트래킹 (N과 M 2) (0) | 2021.03.17 |
[파이썬] 단계별 백준 문제 풀기 - 2630번 재귀/분할정복 (색종이 만들기) (0) | 2021.03.17 |