• Home
  • About
    • Jiwon Jeong photo

      Jiwon Jeong

      끊임없이 배우며 성장하는 엔지니어

    • Learn More
    • Email
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[프로그래머스] - 체육복

09 May 2021

Reading time ~1 minute

풀이

Point

  • 채육 수업을 들을 수 있는 학생 배열 p에 대한 초기화 방식
  • p 배열 요소의 처음과 끝이 어떻게 구성되느냐에 따른 해결방법 모색
#include <string>
#include <vector>

using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = 0;
    vector<int> p(n);
    for(int i=0; i<reserve.size(); i++){
        if(reserve[i]!=0){
            p[reserve[i]-1] +=1;
        }
    }
    
    for(int i=0; i<lost.size(); i++){
        if(lost[i]!=0){
            p[lost[i]-1] += -1;
        }
    }
    
    for(int i=0; i<p.size(); i++){
        if(p[i]==1){
            if(i-1 > -1){
                if(p[i-1]==-1){
                    p[i-1] += 1;
                    p[i] += -1;
                }
            }
        }
        if(p[i]==1){
            if(i < p.size() -1){
                if(p[i+1]==-1){
                    p[i+1] += 1;
                    p[i] += -1;
                }

            }
        }
        
    }
    
    for(int i=0; i<p.size(); i++){
        if(p[i]==0 || p[i]==1){
            answer++;
        }
    }
    return answer;
}


PS Share Tweet +1