본문 바로가기
알고리즘

[그리디] 체육복

by limew 2023. 9. 20.

https://school.programmers.co.kr/learn/courses/30/lessons/42862?language=javascript# 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

풀이

function solution(n, lost, reserve) {
    var answer = 0;
    
    for (let i = 1; i <= n; i++) {
        // 웃을 lost하지 않았다면
        if (!lost.includes(i)) {
            answer++;
        } else {
            // 자기자신이 여분있음
            if (reserve.includes(i)) {
                answer++;
                reserve = reserve.filter(r => r !== i);
            }
            // 왼쪽 사람이 여분있음
            else if (reserve.includes(i-1)) {
                // 여분있는사람이 도난당함
                if (lost.includes(i-1)) {
                    continue;
                } else {
                    answer++;
                    reserve = reserve.filter((r) => r !== (i-1))
                }
            } 
            // 오른쪽 사람이 여분있음
            else if (reserve.includes(i+1)) {
                if (lost.includes(i+1)) {
                    continue;
                } else {
                    answer++;
                    reserve = reserve.filter((r) => r !== (i+1))
                }
            }
        }
    }
    return answer;
}

'알고리즘' 카테고리의 다른 글

[dfs, union find] 네트워크  (0) 2023.09.25
색종이 만들기 (dfs)  (0) 2023.09.23
[DP] N으로 표현  (0) 2023.09.03
[DP] 등굣길  (0) 2023.09.01
[DP] 스티커 모으기(2), 도둑질  (0) 2023.09.01