본문 바로가기

Algorithm

(C++)백준 알고리즘 10818 - 최소, 최대

출처 : https://www.acmicpc.net/problem/10818

 

10818번: 최소, 최대

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

www.acmicpc.net

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

 

입력

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

 

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

 

#include <iostream>
#define INF 1000000
#define R_INF -1000000

using namespace std;

int main(void){
	int N, x, Min = INF, Max = R_INF;
	//cin >> N;
	scanf("%d", &N);
	while (N--) {
		//cin >> x;
		scanf("%d", &x);
		Min = min(x, Min);
		Max = max(x, Max);
	}
	//cout << Min << " " << Max << '\n';
	printf("%d %d\n", Min, Max);
}

상수값 INF와 R_INF값을 정의하여 최댓값과 최솟값의 시작값으로 지정했습니다.

반복문에서 x값을 입력받아 현재 Min값과 Max값을 비교하여 변수 값을 수정하였습니다.

 

결과