티스토리 뷰
문제 링크입니다 : https://programmers.co.kr/learn/courses/30/lessons/42862
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
고등학생 때 생각이 나는 문제였다. 체육복 훔쳐가는 놈들.. ㅂㄷㅂㄷ
문제 유형은 탐욕법인데, 나는 그냥 완전 탐색을 했다.
과정은 재귀적으로 구현했고, 자바스크립트가 익숙하지 않아서.. 좀 엉망이다.
function getCnt(student, index, cnt) {
if(index == student.length) {
return cnt;
}
if(student[index] === 0) {
let leftCnt = 0;
let rightCnt = 0;
if(index !== 0 && student[index - 1] === 2) {
student[index - 1]--;
student[index]++;
leftCnt = getCnt(student, index + 1, cnt + 1);
student[index - 1]++;
student[index]--;
}
if(index + 1 !== student.length && student[index + 1] === 2) {
student[index + 1]--;
student[index]++;
rightCnt = getCnt(student, index + 1, cnt + 1);
student[index + 1]++;
student[index]--;
}
return Math.max(leftCnt, rightCnt, getCnt(student, index + 1, cnt));
} else {
return getCnt(student, index + 1, cnt);
}
}
function solution(n, lost, reserve) {
var answer = 0;
let student = new Array(n).fill(1);
lost.forEach(function(el) {
student[el - 1]--;
});
reserve.forEach(function(el) {
student[el - 1]++;
});
let cnt = 0;
for(let i = 0; i < student.length; i++) {
if(student[i] >= 1) cnt++;
}
answer = getCnt(student, 0, cnt);
return answer;
}
개발 환경 : vscode
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
프로그래머스 - 체육복 (JavaScript)
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 2016년 (JavaScript) (0) | 2020.05.07 |
---|---|
프로그래머스 - K번째수 (JavaScript) (0) | 2020.05.07 |
프로그래머스 - 모의고사 (JavaScript) (0) | 2020.05.07 |
프로그래머스 - 완주하지 못한 선수 (JavaScript) (0) | 2020.05.07 |
프로그래머스 - 2018 KAKAO BLIND RECRUITMENT [3차] 방금그곡 (0) | 2020.05.05 |
댓글