풀이
처음에는 입력받은 숫자에 해당하는 배열을 1로 초기화한 후 출력해주는 방법으로 접근했으나, 시작부터 틀렸다.
#include <stdio.h>
#define MAX 1001
int main(){
int N, num, arr[MAX] = {0, };
scanf("%d", &N);
while (N--){
scanf("%d", &num);
arr[num-1] = 1;
}
for (int i = 0; i < MAX; i++)
if (arr[i])
printf("%d\n", i + 1);
}
아마도, "수의 절대값이 1,000보다 작거나 같은 정수"라는게 양수가 아닌, 음수 또한 입력되는 것으로 추측되기 때문에 틀린 것 같다.
Insertion Sort를 사용해 해결했다.
소스코드
#include <stdio.h>
int main() {
int N, temp, num[1000] = { 0, };
scanf("%d", &N);
for (int i = 0; i < N; i++)
scanf("%d", &num[i]);
for (int i = 1; i < N; i++)
for (int j = 0; j < i; j++)
if (num[j] > num[i]) {
temp = num[i];
for (int k = i; k >= j; k--)
num[k] = num[k - 1];
num[j] = temp;
break;
}
for (int i = 0; i < N; i++)
printf("%d\n", num[i]);
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 2588] 곱셈 [C] (0) | 2021.07.18 |
---|---|
[백준 10430] 나머지 [C] (0) | 2021.07.18 |
[백준 10989] 수 정렬하기 3 [C] (0) | 2021.07.17 |
[백준 1085] 직사각형에서 탈출 [C] (0) | 2021.07.17 |
[백준 1978] 소수 찾기 [C] (0) | 2021.07.17 |