본문 바로가기

알고리즘 문제

[알고리즘 문제/C++]백준 1700번 : 멀티탭 스케줄링

문제 링크 : https://www.acmicpc.net/problem/1700

 

1700번: 멀티탭 스케줄링

기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전

www.acmicpc.net

그리디 알고리즘 문제입니다.

코드

#include <bits/stdc++.h>
using namespace std;
typedef vector<int>::iterator iter;

vector<int> input, P;
int n, k, ct;

int main()
{
    cin >> n >> k;
    for (int i = 0; i < k; ++i) {
        int in;
        cin >> in;
        input.push_back(in);
    }

    for (iter it = input.begin(); it != input.end(); ++it) {
        if (find(P.begin(), P.end(), *it) != P.end()) 
            continue;
        
        if (P.size() < n) {
            P.push_back(*it);
            continue;
        }

        iter last = it, idx = P.begin();
        for (iter t = P.begin(); t != P.end(); ++t) {
            iter temp = find(it + 1, input.end(), *t);

            if (temp > last) {
                idx = t;
                last = temp;
            }
        }

        *idx = *it;
        ct++;
    }
    cout << ct;
}

이 코드에서

#include <bits/stdc++.h>

가 뭔지 궁금하실 수 있는데 이 헤더는 모든 표준 라이브러리를 포함하는 헤더입니다.

(참고 : https://eine.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EB%AC%B8%EC%9E%AC-%ED%92%80-%EB%95%8C-%EC%9C%A0%EC%9A%A9%ED%95%9C-C%EC%97%90%EC%84%9C-bitsstdch-%ED%97%A4%EB%8D%94%ED%8C%8C%EC%9D%BC)