728x90
반응형
문제 풀기 전 생각 :
/*
중복을 허용하지 않고 정렬을 자동으로 해주는
컨테이너인 세트 컨테이너를 사용하면 쉽게 풀 수 있다
*/
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> s;
int n,tmp;
cin >> n;
for(int i=0 ; i<n ; i++){
cin >> tmp;
s.insert(tmp);
}
for (typename std::set<int>::iterator itr = s.begin(); itr != s.end(); ++itr) {
cout << *itr << " ";
}
return 0;
}
https://www.acmicpc.net/problem/10867
풀 때 어려웠던 점 또는 느낀점 :
세트 컨테이너와 조금 더 친해질 수 있었다
개선방안 :
#include<bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int N;
cin >> N;
bool histo[2001] = {false, };
for (int i = 0; i < N; i++)
{
int n;
cin >> n;
histo[n + 1000] = true;
}
for (int i = 0; i <= 2000; i++)
{
if (histo[i])
{
cout << i - 1000 << " ";
}
}
return 0;
}
2001칸 짜리 bool 타입 배열을 만든다.
그리고 해당 숫자가 나왔을때 해당 칸을 true 로 만든다.
배열의 크기를 2001로 한 이유는
입력되는 수의 절대값이 1000보다 작기 때문이다.
음수 또한 들어올 수 있다.
신박하다.
728x90
반응형
'Problem Solving' 카테고리의 다른 글
[C++] [LeetCode 1047] Remove All Adjacent Duplicates In String (0) | 2021.07.27 |
---|---|
[C++] [백준 1431] 시리얼 번호 (0) | 2021.07.26 |
[C++] [LeetCode 234] Palindrome Linked List (0) | 2021.07.26 |
[C++] [11866] 요세푸스 문제 0 (0) | 2021.07.25 |
[C++] [백준 2164] 카드2 (0) | 2021.07.25 |
댓글