알고리즘/백준
[C++] 백준 3052번 - 나머지
Esunn
2022. 7. 26. 22:36
https://www.acmicpc.net/problem/3052
10개의 수가 주어지고 이 수들을 42로 나눈 나머지 중에 다른 수가 몇 개 있는지 출력하는 문제이다.
#include <iostream>
using namespace std;
int main() {
int num[10];
int re[42] = { 0 , };
int cnt = 0;
;
for (int i = 0; i < 10; i++) {
cin >> num[i];
num[i] = num[i] % 42;
}
for (int j = 0; j < 10; j++) re[num[j]]++;
for (int k = 0; k < 42; k++) if (re[k] > 0) cnt++;
cout << cnt;
}
이 문제는 조금 헤매었었는데 2577번 문제와 비슷하게 풀면 됐다.
결국 나머지라는 건 42를 넘을 수 없으니 42칸 배열을 만들어 준 후 나머지들의 수에 맞는 배열을 증가시켜줬다.
이 과정이 끝나면 배열의 담긴 값이 0보다 큰 게 몇 개 있는지 구해준 후 출력해줬다.
이 문제도 글을 참고해서 풀었다.
정렬을 통해 푸는 건가 싶어서 해봤는데 간단하게 배열로 접근하면 되는 문제였다.
https://st-lab.tistory.com/272