CS/Algorithm 문제
[BaekJoon] 백준 13414번 수강신청
심심231
2020. 5. 3. 02:36
[BaekJoon] 백준 13414번 수강신청
문제: https://www.acmicpc.net/problem/13414
내코드
- 처음에 list를 사용해서 풀었더니 시간초과가 났다.
- vector로 학번들을 저장해두고, set으로 중복여부를 판단한다.
#include <string.h>
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
int maxP, click; cin >> maxP >> click;
vector<string> li;
vector<string> result;
set<string> s;
for (int i=0;i < click; i++) {
string tmp; cin >> tmp;
li.push_back(tmp);
}
for (int i = click - 1; i >= 0; --i) {
string tmp = li[i];
if (s.find(tmp) == s.end()) {
s.insert(tmp);
result.push_back(tmp);
}
}
int size = result.size();
for (int i = size - 1; i >= size - maxP && i >= 0; --i)
cout << result[i] << "\n";
return 0;
}
참고
728x90
반응형