입력 받은 수들을 순서대로 출력을 해야 한다. 단, 앞에서 출력한 수가 다시 입력된다면 그 수는 제거해야 한다.
C++ 기준, 메모리 제한이 8MB로 빡빡합니다. 풀이 방법은 간단한데, 비트를 이용하는 방법입니다. 범위를 모두 커버하는 길이의 비트셋을 만들고, 입력받을 때마다 해당 위치의 비트를 1로 바꿔주면 중복을 체크할 수 있습니다.
C++ 기준으로 bitset을 이용하면 간편합니다.
#include <bits/stdc++.h>
using namespace std;
bitset<33554432> bits;
int main(void) {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
while (1) {
int num;
cin >> num;
if (cin.eof())
break;
if (!bits[num]) {
bits[num] = 1;
cout << num << ' ';
}
}
return 0;
}