티스토리 뷰

728x90
반응형

백준 온라인 저지(BOJ) 10818번 최소, 최대
https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

www.acmicpc.net

* 사용언어 : C언어, C++

 

1. 문제

N개의 정수 중 최솟값, 최대값 출력 (최대 1,000,000개)

 

2. 풀이

입력받은 값을 하나하나 비교하여 처리하면 됩니다.
'1차원 배열' 단계에 속하는 문제라서 배열을 생성하여 풀어보려 했으나,
메모리 공간을 불필요하게 사용하는 것 같아 입력받은 값을 바로 비교하는 방식으로 풀었습니다.

1차원 배열에 먼저 모든 값을 입력받은 후에

전체 탐색을 하거나 정렬(버블, 삽입, 퀵 등)을 한 뒤 출력해도 됩니다.

 

3. 코드

#include <stdio.h>

int main() {
	int n;
	scanf("%d", &n);

	int min = 1000000;
	int max = -1000000;
	int input;

	for (int i = 0; i < n; ++i) {
		scanf("%d", &input);
		if (input < min) min = input;
		if (input > max) max = input;
	}
	printf("%d %d\n", min, max);

	return 0;
}

* 원활한 비교를 위해 min, max 초기값을 잘 설정해야 합니다.

728x90
반응형
댓글