고줭 2021. 5. 11. 22:33

문제

N(2<=N<=100)명의 나이가 입력됩니다. 이 N명의 사람 중 가장 나이차이가 많이 나는 경우는 몇 살일까요? 최대 나이 차이를 출력하는 프로그램을 작성하세요.

첫 줄에 자연수 N(2<=N<=100)이 입력되고, 그 다음 줄에 N개의 나이가 입력된다.

입력예제

10
13 15 34 23 45 65 33 11 26 42

출력예제

54


위 문제를 보고 바로 정렬을 떠올렸다. 오름차순이던 내림차순이던 정렬후에 첫번째 원소와 마지막원소만 비교하면되니까.

그치만 강의에서는 sort같은 라이브러리는 사용하지 않았다.

#include <iostream>
using namespace std;

int main(){
	freopen("input.txt", "rt", stdin);
	int n, i, temp, min=2147000000, max=-2147000000;
	cin >> n;
	
	for(i=0; i<n; i++){
		cin >> temp;
		if(temp > max) max = temp;
		if(temp < min) min = temp;
	}
	cout << max-min;
	
	return 0;
}

 

freopen은 입력을 직접 콘솔창에 적는것이 아니라 따로 파일에서 불러올때 필요하다고 한다.
입력예제가 있는 파일이름은 input.txt이고 나머지는 freopen시 쓰는 옵션들인거 같다. 필요하면 검색..