반응형
문제 출처 :
https://www.acmicpc.net/problem/10867
알고리즘 분석 :
문제 해결에 필요한 사항
1. Bitset STL
bitset STL을 이용하면 매우 쉽게 해결할 수 있는 문제이다.
범위가 절댓값 1000이기에 총 범위는 -1000 ~ 1000이다. 따라서 음의 값은 bitset에 넣지 못하니
+1000을 모두해주어 -1000은 0번 bitset에 들어가도록, 1000은 2000번 bitset에 들어가도록 해주고
결과를 출력하기 전에 -1000을 해줌으로써 모든것을 해결한다.
그리고 값을 받을 때 마다 bt[값을 나타내는 번호]에 이전에 이미 값이 들어왔는지 확인하고 중복된다면
넣어주지 않는 방식을 이용한다.
소스 코드 :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <bitset> #include <cstdio> using namespace std; int main() { int n; int val; bitset<2050> bt; scanf("%d",&n); bt.reset(); for (int i = 0; i < n; i++) { scanf("%d",&val); val += 1000; bt[val] == 0 ? bt[val] = 1 : 0; } for (int i = 0; i < 2005; i++) if (bt[i] == 1) printf("%d ", i - 1000 ); } // This source code Copyright belongs to Crocus // If you want to see more? click here >> | Crocus |
반응형
'Applied > 알고리즘 문제풀이' 카테고리의 다른 글
[2501번] 약수 구하기 (0) | 2016.12.22 |
---|---|
[1977번] 완전 제곱수 (0) | 2016.12.22 |
[13701번] 중복 제거 (0) | 2016.11.22 |
[1753번] 최단 경로 (0) | 2016.11.21 |
[2606번] 바이러스 (플로이드 워셜 알고리즘) (0) | 2016.11.18 |