코드 복사/붙여넣기 하는 당신이 아름답습니다.

1713 : 후보 추천하기

풀이

짜라는대로 짜면 된다.

코드

#include <cstdio>
#include <deque>
#include <algorithm>
using namespace std;

int n, m;
struct abc {
    int idx, vote, time;
    bool operator <(abc a)const {
        if (vote == a.vote) return time < a.time;
        return vote < a.vote;
    }
};

int main() {
    deque<abc> d;
    scanf("%d %d", &m, &n);
    for (int i = 1; i <= n; i++) {
        int x;
        scanf("%d", &x);
        for (abc &it : d) if (it.idx == x) it.vote++, x = -1;
        if (x == -1) continue;
        sort(d.begin(), d.end());
        if (d.size() >= m) d.pop_front();
        d.push_back({ x,1,i });
    }

    sort(d.begin(), d.end(), [](abc i, abc j){return i.idx<j.idx;});

    for (auto it : d) {
        printf("%d ", it.idx);
    }

    return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2018-09-17 12:13

Read more posts by this author