반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
05-19 00:03
관리 메뉴

ImJay

[C언어] 백준 3052번 : 나머지 본문

백준 - C, C++/05. 1차원 배열

[C언어] 백준 3052번 : 나머지

ImJay 2020. 9. 28. 00:00
반응형

백준 3052번 : 나머지

- 사용언어 : C언어

www.acmicpc.net/problem/3052

1. 문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

2. 코드

#include <stdio.h>

int main(void) {
    
    int input, result=0;
    int remain[10];
    
    for(int i=0; i<10; i++) {
        scanf("%d", &input);
        remain[i] = (input % 42);
    }
    
    for(int i=0; i<10; i++) {
        int count=0; // 초기화
        for(int j=i+1; j<10; j++) { // 서로 같은 수일 경우
            if(remain[i] == remain[j]) count++;
        }
        if (count == 0) result++; // 같은 수가 없을 경우 개수를 세준다
    }
    
   printf("%d", result);
}

3. 풀이

1) input으로 입력 값을 받는다

2) remain[i]에 input을 42로 나눈 나머지를 저장

3) for문으로 remain[i]의 값을 서로 비교하여 같은 수인지 찾기

4) 같은 수가 없을 경우 result++ 해준다

* count != 0 이면 서로 같은 수가 있는 경우이므로 result의 값이 오르지 않도록 하자.

반응형
Comments