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);
}
출처
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 10797] 10부제 [C] (0) | 2021.07.11 |
---|---|
[백준 8958] OX퀴즈 [C] (0) | 2021.07.11 |
[백준 2920] 음계 [C] (0) | 2021.07.11 |
[백준 10866] 덱 [C] (0) | 2021.07.10 |
[백준 2908] 상수 [C] (0) | 2021.07.10 |