PS/Baekjoon Online Judge
[백준 3052] 나머지 [C]
kimyoungrok
2021. 7. 11. 18:14
728x90
풀이
입력받은 값을 42로 나누었을 때의 나머지를 저장해두고 비교해서 서로 다른 수가 몇 개인지 찾아내는 문제이다.
최선의 경우에는 1개이지만, 최악의 경우에는 42개가 나올 수 있다.
수를 입력받고 배열의 마지막 인덱스까지 탐색 했는데 동일한 수가 없다면, 새로 등록을 해주는 형식이다.
소스코드
#include <stdio.h>
int main(){
int arr[42], num, idx = 1;
for (int i = 0; i < 10; i++){
scanf("%d", &num);
num %= 42;
if (!i)
arr[0] = num;
else
for (int j = 0; j < idx; j++)
if (arr[j] != num && j == idx - 1){
arr[j+1] = num;
idx++;
}else if (num == arr[j])
break;
}
printf("%d\n", idx);
}
출처
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
728x90