나이차이


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

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

▣ 출력설명
첫 줄에 최대 나이차이를 출력합니다.

▣ 입력예제 1 
10
13 15 34 23 45 65 33 11 26 42
 
▣ 출력예제 1
54


풀이

stl을 이용해서 구해보기도하고 그냥 최소 최대를 바로 구해서 답을 구해보기도 했다.
먼전 stl을 사용한 정답이다.

int n;
vector<int> ages;

void solve()
{
	cin >> n;
	ages = vector<int>(n);

	for (int i = 0; i < n; ++i)
	{
		cin >> ages[i];
	}

	sort(ages.begin(), ages.end());
	cout << ages.back() - ages.front();
}

다음은 바로 최소 최대를 구해서 구한 정답이다.

void solve2()
{
	cin >> n;

	int temp;
	int min = 101;
	int max = -1;

	for (int i = 0; i < n; ++i)
	{
		cin >> temp;
		if (temp > max)
			max = temp;
		if (temp < min)
			min = temp;
	}

	cout << max - min;
}

전체 코드

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include<iostream>
#include <fstream>
#include <vector>
#include <algorithm>

using namespace std;

int n;
vector<int> ages;

void solve()
{
	cin >> n;
	ages = vector<int>(n);

	for (int i = 0; i < n; ++i)
	{
		cin >> ages[i];
	}

	sort(ages.begin(), ages.end());
	cout << ages.back() - ages.front();
}

void solve2()
{
	cin >> n;

	int temp;
	int min = 101;
	int max = -1;

	for (int i = 0; i < n; ++i)
	{
		cin >> temp;
		if (temp > max)
			max = temp;
		if (temp < min)
			min = temp;
	}

	cout << max - min;
}

int main() 
{
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	//freopen("input.txt", "rt", stdin);

	solve2();

	return 0;
}