본문 바로가기
Algorithm/C++

[프로그래머스 C++] 체육복 / Greedy

by imagineer_jinny 2021. 9. 20.

코딩테스트 연습 - 체육복 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr

 

 

#include <string>
#include <vector>

using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = 0;

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

댓글