본문 바로가기
Coding Test/JavaScript

[프로그래머스] 체육복 JavaScript Code

by giem 2022. 8. 10.
반응형

 

저번 Python, C++, Go Code에 이어서 이번에는 JS로 풀어보려고 한다.

2022.08.10 - [Coding Test/Python] - [프로그래머스] 체육복 Python Code

2022.08.11 - [Coding Test/C++] - [프로그래머스] 체육복 C++ Code

2022.08.10 - [Coding Test/Go] - [프로그래머스] 체육복 Go Code

 

먼저 문제를 보겠다.

 


문제

 

앞의 포스트에서 작성한 것과 같이 똑같이 이해할 수 있다.

 

체육복을 도난당한 학생들이 자신의 바로 앞, 뒤 번호인 학생의 체육복을 빌려서

체육수업을 들을 수 있는 학생 수의 최댓값을 리턴하면 된다.


구현 방법

이전 포스트의 C++, Go와 똑같이 구현해보았다.

 

먼저 student object를 만들고

lost와 reserve를 각각 돌며 학생 object를 초기화했다.

옷이 없는 학생은 -1, 여벌이 있는 학생은 +1을 해주었다.

 

그 후 lost를 돌며 앞뒤 학생을 확인하고 빌려주는 처리(양쪽을 0으로 초기화)를 했다.

 

코드를 보겠다.


Code
function solution(n, lost, reserve) {
    const students = {};
    let answer = 0;
    for(let i = 1; i <= n; i++){
        students[i] = 0;
    }
    lost.forEach(number => students[number] -= 1);
    reserve.forEach(number => students[number] += 1);

    for(let i = 1; i <= n; i++){
        if(students[i] == -1){
            if(students[i-1] == 1){
                students[i-1] = 0;
                students[i] = 0;
            } else if(students[i+1] == 1){
                students[i+1] = 0;
                students[i] = 0;
            }
        }
    }
    
    for(let i = 1; i <= n; i++){
        if(students[i] != -1){
            answer++;
        }
    }
    return answer;
}

 

이렇게 JavaScript로 풀어보았다.

 

Python, Go, C++로 된 풀이도 있으니

궁금하다면 포스트 상단의 링크로 확인하면 좋을 것 같다.

반응형

댓글