백준(BEAKJOON) | 단계별로 풀어보기
5-4단계 #3052번
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
문제 |
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력 |
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력 |
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.


🥕 이 문제는 for문과 배열은 사용하여 풀었다. 10개의 수를 입력받고 배열에 저장했다.
이중 반복문으로 입력 받은 숫자를 42로 나눈 나머지가 다른 수를 42로 나눈 나머지와 같은 지를 비교하였다.
(num[i]%42를 num[0]%42 ~ num[i-1]%42와 비교)
예를 들어, num[4] = 8이라는 숫자가 있다고 가정하자. num[4]%42를 num[0]%42 ~ num[3]%42와 비교한다.
만약 나머지가 같다면 sum = 1이라 하고 모든 비교 후에도 나머지가 같은 것들이 없었다면 sum은 그대로 0일 것이다.
-코드 첨부-
C언어
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <stdio.h>
int main(void)
{
int num[10];
int result=0;
for(int i=0; i<10; i++){
scanf("%d", &num[i]);
}
for(int i=0; i<10; i++){
int sum = 0;
for(int j=0; j<i; j++){
if(num[i]%42 == num[j]%42){
sum = 1;
}
}
if(sum==0){
result++;
}
}
printf("%d\n",result);
return 0;
}
|
cs |
'Coding > Baekjoon(백준)' 카테고리의 다른 글
[C언어] 백준 4948번. 베르트랑 공준. (0) | 2021.01.26 |
---|---|
[Python, C] 백준 1546번. 평균. (0) | 2021.01.23 |
[C언어] 백준 2577번. 숫자의 개수. (0) | 2021.01.19 |
[C언어] 백준 2562번. 최댓값. (2) | 2021.01.19 |
[Python, C] 백준 10818번. 최소, 최대. (0) | 2021.01.18 |
백준(BEAKJOON) | 단계별로 풀어보기
5-4단계 #3052번
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
문제 |
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다. 수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력 |
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력 |
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.


🥕 이 문제는 for문과 배열은 사용하여 풀었다. 10개의 수를 입력받고 배열에 저장했다.
이중 반복문으로 입력 받은 숫자를 42로 나눈 나머지가 다른 수를 42로 나눈 나머지와 같은 지를 비교하였다.
(num[i]%42를 num[0]%42 ~ num[i-1]%42와 비교)
예를 들어, num[4] = 8이라는 숫자가 있다고 가정하자. num[4]%42를 num[0]%42 ~ num[3]%42와 비교한다.
만약 나머지가 같다면 sum = 1이라 하고 모든 비교 후에도 나머지가 같은 것들이 없었다면 sum은 그대로 0일 것이다.
-코드 첨부-
C언어
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <stdio.h>
int main(void)
{
int num[10];
int result=0;
for(int i=0; i<10; i++){
scanf("%d", &num[i]);
}
for(int i=0; i<10; i++){
int sum = 0;
for(int j=0; j<i; j++){
if(num[i]%42 == num[j]%42){
sum = 1;
}
}
if(sum==0){
result++;
}
}
printf("%d\n",result);
return 0;
}
|
cs |
'Coding > Baekjoon(백준)' 카테고리의 다른 글
[C언어] 백준 4948번. 베르트랑 공준. (0) | 2021.01.26 |
---|---|
[Python, C] 백준 1546번. 평균. (0) | 2021.01.23 |
[C언어] 백준 2577번. 숫자의 개수. (0) | 2021.01.19 |
[C언어] 백준 2562번. 최댓값. (2) | 2021.01.19 |
[Python, C] 백준 10818번. 최소, 최대. (0) | 2021.01.18 |