백준 10989하고싶은거/알고리즘 문제풀이2024. 3. 20. 19:47
Table of Contents
과정
- 이 문제 보자마자 '저번 정렬 문제때 생각한 아이디어를 쓸 수 있겠다' 라는 생각이 들었다.
- 왜냐하면, 이 문제는
1. 주어지는 수들이 모두 자연수
2. 중복이 가능한 문제 조건
을 가지고 있기 때문이다. - 즉, 부여되는 숫자를 인덱스로 가지는 벡터값을 +1씩 올려서 출력한다.
코드
#include <iostream>
#include <vector>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int N = 0; // 주어지는 총 수의 개수
vector<int> NVec(10001);
// vector<int> NVec(10000); : 10000개 크기, 원소 0으로 초기화
// vector<int> NVec = {10000}; : 1개 크기, 원소 10000으로 초기화
cin >> N;
for (int i = 0; i < N; i++)
{
int num = 0; // N번만큼 입력받는 숫자
cin >> num;
NVec[num]++;
}
for (int i = 1; i < NVec.size(); i++)
{
if (NVec[i] == 0)
continue;
else
{
for (int j = 0; j < NVec[i]; j++)
cout << i << "\n";
}
}
return 0;
}
추가적으로, 벡터의 크기를 capacity가 아닌 size()로 구한 이유는,
앞서 위에서 벡터를 초기화할 때, 원소를 0으로 모두 넣어줬기 때문이다.
capacity는 아예 원소가 null일때 사용하므로 size를 사용해주었다.
'하고싶은거 > 알고리즘 문제풀이' 카테고리의 다른 글
백준 1012 (DFS) (2) | 2024.03.23 |
---|---|
백준 11650 (multiset) (0) | 2024.03.21 |
백준 2839 (그리디) (0) | 2024.03.19 |
백준 2751 (정렬) (0) | 2024.03.18 |
백준 2292 (점화식) (0) | 2024.03.17 |
@ssIIIn :: 두 번째 저장공간
#개발 #게임 #일상
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!