본문 바로가기

프로그래밍/백준

[백준 C언어] 3052. 나머지

나의 풀이

#include <stdio.h>

int main(void){
    
    int n, count=0;
    int modArr[42]={0};  //0~41의 범위에서, 나머지가 존재하는지 여부를 저장할 배열
    
    for(int i=0;i<10;i++){
        scanf("%d",&n);
        if(modArr[n%42]==0){  //나머지가 중복된 수가 아니라면 배열 값 1로 변경 후 카운트
            modArr[n%42]=1;
            count++;
        }
    }
    printf("%d",count);
    return 0;
}

42로 나누었을 때 나머지가 나올 수 있는 경우의 수는 0~41이므로

42칸짜리 배열을 만들어 0으로 초기화해주었다. 

이후 나머지 연산을 통해 나온 나머지가 중복값이 아닐 경우 

해당 배열의 요소를 1로 바꿔준 후 카운트해주면 된다.