[BOJ 알고리즘] 3052 "나머지"
● 문제
- 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
- 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
● 소스코드
#include <stdio.h>
#include <algorithm>
using namespace std;
int main()
{
int num[10] = {};
int count[42] = {};
for(int i=0; i<10; i++)
{
scanf("%d",&num[i]);
count[num[i]%42]++;
}
int answer = 0;
for(int i=0; i<42; i++)
{
if(count[i] > 0)
{
answer++;
}
}
printf("%d\n",answer);
return 0;
}
● 풀이
- 특별한 알고리즘은 없다.
- 정수 10개를 입력받고, 나머지를 계산하여 count[숫자%42] 값을 증가 시킨다.
- count[i] 가 양수인 i의 수를 세면 된다.
* www.acmicpc.net/problem/3052
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
'알고리즘 > BOJ(C++)' 카테고리의 다른 글
[BOJ 알고리즘] 9498 "시험 성적" (0) | 2021.05.18 |
---|---|
[BOJ 알고리즘] 8958 "OX퀴즈" (0) | 2021.05.18 |
[BOJ 알고리즘] 2920 "음계" (0) | 2021.05.18 |
[BOJ 알고리즘] 2908 "상수" (0) | 2021.05.18 |
[BOJ 알고리즘] 2884 "알람 시계" (0) | 2021.05.18 |
댓글