본문 바로가기

코딩테스트/프로그래머스

[Level 1][C++] 체육복

#include <string>
#include <vector>

using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    
    vector<int> students(n+2);
    fill(students.begin(), students.end(), 1);
    students[0]=-1;
    students[n+1]=-1;
    
    for(int i=0; i<lost.size(); i++)
        students[lost[i]] -=1;
    for(int i=0; i<reserve.size(); i++)
        students[reserve[i]] +=1;
    
    for(int i=1; i<students.size(); i++)
    {
        if(students[i]==0)
        {
            if(students[i-1] ==2)
            {
                students[i]++;
                students[i-1]--;
             }
            else if(students[i+1] ==2)
                {
                students[i]++;
                students[i+1]--;
             }
        }
    }
    
    int answer = 0;
    for(int i=1; i<students.size(); i++)
        if(students[i]>=1)
            answer++; 
   
    return answer;
}

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[Level 2][C++] 구명보트  (0) 2024.10.01
[Level 1][C++] N으로 표현  (0) 2024.10.01
[Level 1][C++] 모의고사  (0) 2024.10.01
[Level 1][C++] 완주하지 못한 선수  (0) 2024.10.01
[Level 1][C++] 2016년  (0) 2024.10.01