Q

백준 10818

백준 10818번 문제


C code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <stdio.h>

int main(void)
{
int n, min=0, max=0;
int arr[1000000] = {0,};

scanf("%d", &n);

if(n >= 1 && n <= 1000000)
{
for(int i = 0; i < n; i++)
scanf("%d", &arr[i]);

for(int i = 0; i < n; i++)
{
if(arr[i] < -1000000 && arr[i] > 1000000)
return 0;
}

min = arr[0], max = arr[0];
for(int i = 0 ; i < n; i++)
{
if(arr[i] > max)
max = arr[i];
if(arr[i] < min)
min = arr[i];
}

printf("%d %d\n", min, max);
}

return 0;
}

Q

1
2
3
min = arr[0], max = arr[0];

-> min = arr[0];

위의 정답 코드에서 min과 max 변수를 arr[0]의 값으로 초기화하는 부분을 min 변수만 적으면 에러가 발생한다.
max 변수는 딱히 arr[0]의 값으로 초기화 안해도 되지 않나?

A

음수일 경우에는 max의 값이 계속 0이기 때문에 max를 arr[0]의 값으로 초기화 해줘야 한다.