문제
N(2<=N<=100)명의 나이가 입력됩니다. 이 N명의 사람 중 가장 나이차이가 많이 나는 경우는 몇 살일까요? 최대 나이 차이를 출력하는 프로그램을 작성하세요.
💡 입력설명
첫 줄에 자연수 N(2<=N<=100)이 입력되고, 그 다음 줄에 N개의 나이가 입력된다.
💡 출력설명
첫 줄에 최대 나이차이를 출력합니다.
💡 입력예제
10
13 15 34 23 45 65 33 11 26 42
💡 출력예제
54
코드
최종 풀이
#include <iostream>
using std::cin;
using std::cout;
int main() {
// freopen("input.txt", "rt", stdin);
int n, i, a, max = -2147000000, min = 2147000000;
cin >> n;
for(i = 0; i < n; i++) {
cin >> a;
if(a > max) {
max = a;
}
if(a < min) {
min = a;
}
}
cout << max - min;
return 0;
}
설명
최대값과 최소값을 구하기 위해 max에는 가장 작은 값, min에는 가장 큰 값을 할당해놓는다.
이후 사용자로부터 n번의 입력을 받기 위해 0에서 부터 n미만까지 반복하는 for문을 작성한다.
이후 n이 max보다 클 경우 max에 n을 할당하고 min보다 작을 경우 min에 n을 할당한다.
반복문을 나온 이후 max에서 min값을 뺀 차이값을 출력한다.
배운 점
1. 최대값과 최소값을 구할 때 필요한 할당 값을 알게되었다.
2. 최대값과 최소값을 구하는 문제이기 때문에 굳이 배열을 쓰지 않아도 된다는 것을 알게되었다.
3. 입력이 많아지면 console에 모두 입력할 수 없기 때문에 input.txt파일을 만들어 freopen해준다.
해당 내용은 김태원님의 'it 취업을 위한 알고리즘 문제풀이' 강의를 듣고 작성한 글입니다.