반응형
https://www.acmicpc.net/problem/10818
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int num;
int tmp;
int max = -1000000; //max와 min을 최대,최소값으로 바로 교체하기 위해 극한값으로 초기화한다.
int min = 1000000;
scanf("%d", &num);
for (int i = 0; i < num; i++) {
scanf("%d", &tmp);
if (tmp > max) {
max = tmp;
}
if (tmp < min) {
min = tmp;
}
}
printf("%d %d", min, max);
}
정수의 범위가 +-포함하여 2,000,000개까지 넓기 때문에, 배열로는 해결이 불가능합니다. (stack overflow가 발생)
그렇기 때문에,
max를 입력되는 정수 범위의 최솟값으로 (범위의 최댓값으로 착각하기 쉬움)
min을 입력되는 정수 범위의 최댓값으로 (범위의 최솟값으로 착각하기 쉬움)
초기화 하고, 입력받는 즉시 대소관계를 파악하여 max와 min을 교체해주었습니다.
다음 문제를 풀러 가보겠습니다.
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준][c] 2577번: 숫자의 개수 (0) | 2021.06.24 |
---|---|
[백준][c] 2562번: 최댓값 (0) | 2021.06.23 |
[백준][c] 1110번: 더하기 사이클 (0) | 2021.06.23 |
[백준][c] 10951번: A + B - 4 (0) | 2021.06.23 |
[백준][c] 10952번: A + B - 5 (0) | 2021.06.23 |