백준 3052번 문제 - 1차원 배열
두 자연수 A와 B가 있을 때 A%B는 A를 B로 나눈 나머지이다.
예를 들어 7,14,27,38을 3으로 나눈 나머지는 1,2,0,2이다.
수 10개를 입력 받은 뒤, 이를 42로 나눈 나머지를 구한다.
그다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하라.
#include <stdio.h>
int main()
{
int a=0, cnt=0, arNums[10], arMatch[42];
for(int i=0; i<sizeof(arNums)/sizeof(arNums[0]); i++){
scanf("%d", &a);
arNums[i]=a%42;
}
for(int i=0; i<sizeof(arMatch)/sizeof(arMatch[0]); i++){
arMatch[i]=i;
}
for(int i=0; i<sizeof(arMatch)/sizeof(arMatch[0]); i++){
for(int j=0; j<sizeof(arNums)/sizeof(arNums[0]); j++){
if(arMatch[i]==arNums[j]){
cnt++;
break;
}
}
}
printf("%d", cnt);
return 0;
}
/*
배열 하나만으로 비교할 수 있으나 예외 처리를 하지 않기 위해 배열을 하나 더 만들었다.
0~41까지의 숫자를 담은 배열(arMatch)을 추가하고 숫자의 가짓수를 센다는 개념으로
풀었다.
*/
생각보다 오래 걸렸다.
하루 한 문제씩은 꼭 풀어야겠다.
반응형
'컴퓨터 > C, C++' 카테고리의 다른 글
[C/C++] 백준 1546번 C언어 (0) | 2022.05.16 |
---|---|
[C/C++] 백준 2577번 C언어 (0) | 2022.05.14 |
[C/C++] 백준 2562번 배열_최댓값 (0) | 2022.03.18 |
[C/C++] 백준 2480번 주사위 세개 (0) | 2022.03.16 |
[C/C++] 코드업 알고리즘 1106번 문제 - C언어 (0) | 2022.01.07 |
댓글