나의 풀이
#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로 바꿔준 후 카운트해주면 된다.
'프로그래밍 > 백준' 카테고리의 다른 글
[백준 C언어] 2941. 크로아티아 알파벳 (0) | 2022.12.29 |
---|---|
[백준 C언어] 2292. 벌집 (0) | 2022.12.22 |
[백준 C언어] 2908. 상수 (2) | 2022.12.21 |
[C언어] 10809. 알파벳 찾기 (0) | 2022.12.20 |
[백준] 1292. 쉽게 푸는 문제 (0) | 2022.11.15 |