입력 코드
#include <stdio.h>
main() {
int i = 0, j, k;
int rem[10];
int input, result = 0;
for(i=0;i<10;i++){
scanf("%d", &input);
rem[i] = (input % 42);
}
for (j = 0; j < 10; j++) {
int count = 0;
for (k = j+1; k < 10; k++) {
if (rem[j] == rem[k])
count++;
}
if (count == 0)
result++;
}
printf("%d", result);
}
코드 설명
배열과 반복문, 조건문을 이용하는 문제
#include <stdio.h>
main() {
int i=0, j=0, k;
int arr[10], rem[10];
int count=0;
while(i<10){
scanf("%d", &arr[i]);
rem[j++] = arr[i++]%42;
}
for (j = 0; j < 10; j++) {
for (k = 0; k < 10; k++) {
if (rem[j] != rem[k])
count++;
}
}
printf("%d", count);
}
처음에는 42로 나눈 나머지를 배열에 넣고 다른지 일일이 다 비교했는데 이렇게 하면 중복으로 count되는 게 많아지는 것 같다.
#include <stdio.h>
main() {
int i = 0, j, k;
int rem[10];
int input, result = 0;
for(i=0;i<10;i++){
scanf("%d", &input);
rem[i] = (input % 42);
}
for (j = 0; j < 10; j++) {
int count = 0;
for (k = j+1; k < 10; k++) {
if (rem[j] == rem[k])
count++;
}
if (count == 0)
result++;
}
printf("%d", result);
}
찾아보니까 반대로 count =0으로 초기화해놓고 나머지가 같을 때에만 count를 증가시킨다. 그러면 count = 0일 때는 나머지가 같지 않다는 것이므로 그때 새로운 값(result값)을 증가시킨다.
마지막에 반복문 초기값 설정하는 거에서 헷갈렸다. j=0인 값이랑 j=1, j=2,,, 를 비교해야 하니까
2021/01/08 - [C] - #19. [백준_C언어] 2798 : 블랙잭
#19. [백준_C언어] 2798 : 블랙잭
입력 코드 #include main() { int N, M; scanf("%d %d", &N, &M); int num[100]; int sum, max = 0; int i, j, k; for (i = 0; i < N; i++) { scanf("%d", &num[i]); } for (i = 0; i < N; i++) { for (j = i +..
daily-life-in-20s.tistory.com
이 문제랑 비슷한 것 같기도 하다.
↓↓↓ 참고한 사이트
[C언어] 백준 3052번 : 나머지
백준 3052번 : 나머지 - 사용언어 : C언어 www.acmicpc.net/problem/3052 1. 문제 두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다..
develop247.tistory.com
문제 출처
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
'C' 카테고리의 다른 글
#26. [백준_C언어] 4344 : 평균은 넘겠지 (0) | 2021.01.12 |
---|---|
#25. [백준_C언어] 1546 : 평균 (0) | 2021.01.12 |
#23. [백준_C언어] 2577 : 숫자의 개수 (0) | 2021.01.11 |
#22. [백준_C언어] 1110 : 더하기 사이클 (0) | 2021.01.09 |
#21. [백준_C언어] 11050 : 이항 계수 1 (0) | 2021.01.09 |