관리 메뉴

fatalite

체육복 - 프로그래머스 본문

코딩 인터뷰/프로그래머스

체육복 - 프로그래머스

fataliteforu 2023. 10. 17. 21:27

문제

문제 난이도 : 프로그래머스 1단계

문제 분류 : 그리디

 

문제 리뷰

않이 1단계인데 헤맸다...

 

문제 소스코드

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = 0;
    vector<int> Vec(n+2, 1);
    Vec[0] = 0;
    Vec[n+1] = 0;
    sort(lost.begin(), lost.end());
    sort(reserve.begin(), reserve.begin());
    for(int i : reserve){Vec[i] = 2;}
    for(int i : lost){Vec[i]--;}
    for(int i = 1; i < n + 1; i++){
        if(Vec[i] == 0){
            if(Vec[i-1] == 2){
                Vec[i] = 1;
                Vec[i-1]--;
                continue;
            }
            if(Vec[i+1] == 2){
                Vec[i] = 1;
                Vec[i+1]--;
                continue;
            }
        }
    }
    for(int i = 1; i < n + 1; i++){
        if(Vec[i] >= 1) answer++;
    }
    return answer;
}