No Rules Rules

체육복 (feat. 프로그래머스, 42862번) 본문

생활/코테

체육복 (feat. 프로그래머스, 42862번)

개발하는 완두콩 2022. 7. 23. 20:42
728x90
반응형

체육복
https://programmers.co.kr/learn/courses/30/lessons/42862

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

반응형
// woohyeon.kim
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int solution(int n, vector<int> lost, vector<int> reserve) {
    int answer = n;
    sort(lost.begin(), lost.end());
    sort(reserve.begin(), reserve.end());
    // 여벌이 있는 사람이 잃어버린 경우, 계산에서 제외시킴
    for(auto iter = lost.begin(); iter != lost.end();)
    {
        auto find_me = find(reserve.begin(), reserve.end(), *iter);
        if(find_me != reserve.end())
        {
            iter = lost.erase(iter);
            reserve.erase(find_me);
        }
        else
        {
            ++iter;
        }
    }
    for(const auto& lost_person : lost)
    {
        auto find1 = find(reserve.begin(), reserve.end(), lost_person - 1);
        auto find2 = find(reserve.begin(), reserve.end(), lost_person + 1);
        if((find1 == reserve.end()) &&
           (find2 == reserve.end()))
        {
            --answer;
        }
        else
        {
            if(find1 != reserve.end())
                reserve.erase(find1);
            else
                reserve.erase(find2);
        }
    }
    return answer;
}
// *&)*@*

여벌이 있는데 옷을 잃어버렸다면, 그 사람은 남에게 옷을 빌려줄 수 없으므로

위 기능을 체크하는게 필요합니다.

또한 13, 14번이 실패가 나면 sort를 해주어야 한다고 힌트를 얻었습니다.

728x90
반응형
Comments