https://www.acmicpc.net/problem/3052
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
나머지의 범위가 [0, 41]이므로 길이 42짜리 bool 배열에 각 나머지가 나왔는지 여부를 표시한 뒤, 배열에서 각 나머지가 나왔는지 여부를 센 값을 출력한다.
#include <cstdio>
#define MOD 42
int main() {
bool mod[MOD] = { false, };
int buf, ans = 0;
// 수를 열 번 입력받은 뒤
for (int i = 0; i < 10; i++) {
scanf("%d", &buf);
// 해당 수를 42로 나눈 나머지가 나옴을 표시한다
mod[buf % MOD] = true;
}
// 서로 다른 나머지가 나온 횟수를 출력
for (int i = 0; i < MOD; i++) ans += mod[i];
printf("%d\n", ans);
return 0;
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
3182번: 한동이는 공부가 하기 싫어! (0) | 2021.12.21 |
---|---|
3053번: 택시 기하학 (0) | 2021.12.21 |
3040번: 백설 공주와 일곱 난쟁이 (0) | 2021.12.21 |
3009번: 네 번째 점 (0) | 2021.12.21 |
2961번: 도영이가 만든 맛있는 음식 (0) | 2021.12.21 |