백준 알고리즘 문제 10818 ㅡ 최소, 최대
문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

코드
#include <stdio.h>
// 배열 미사용
int main(void) {
int i, n, num;
int max=-1000000, min=1000000;
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &num);
if (num > max)
max = num;
if (num < min)
min = num;
}
printf("%d %d", min, max);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
// 배열 사용
int main(void) {
int i, n;
int max = INT_MIN, min = INT_MAX;
scanf("%d", &n);
int* arr = (int*)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
scanf("%d", &arr[i]);
for (i = 0; i < n; i++) {
if (arr[i] > max)
max = arr[i];
if (arr[i] < min)
min = arr[i];
}
printf("%d %d", min, max);
return 0;
}
메모
INT_MAX, INT_MIN을 사용하면 정수형 범위에서의 최소값과 최대값을 지정할 수 있다! (헤더파일은 limits.h)
정수 N의 최대개수인 1,000,000을 배열의 길이값으로 주니 오버플로우가 발생해서 동적할당을 이용했다.
https://www.acmicpc.net/problem/10818
10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net
'BAEK JOON ㅡ C' 카테고리의 다른 글
| [BAEK JOON/C] 2577 ㅡ 숫자의 개수 (0) | 2022.05.26 |
|---|---|
| [BAEK JOON/C] 2562 ㅡ 최댓값 (0) | 2022.05.21 |
| [BAEK JOON/C] 1110 ㅡ 더하기 사이클 (0) | 2022.05.18 |
| [BAEK JOON/C] 10951 ㅡ A + B - 4 (0) | 2022.05.16 |
| [BAEK JOON/C] 10952 ㅡ A + B - 5 (0) | 2022.05.16 |