250x250
Notice
Recent Posts
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
관리 메뉴

일상 코딩

[C++] 나이 차이, min, max 실시간 갱신 본문

C++/코딩테스트 대비

[C++] 나이 차이, min, max 실시간 갱신

polarcompass 2021. 10. 8. 20:46
728x90
#include<iostream>
using namespace std;

int main(){
	// input.txt 파일로 데이터를 받는다.
    freopen("input.txt", "rt", stdin); 
    int N, i, age, max = -2147000000, min = 2147000000;
    cin >> N;

    for(i = 0; i < N; i++){
        cin >> age;
        if( age > max){ max = age;}
        if( age < min){ min = age;}
    }
    cout << max - min << endl;
    return 0;
}

이번 문제의 핵심은 

입력받는 age 값을 실시간으로 max, min 값과 비교하여 실시간으로 갱신하는 것에 있다.

입력받는 데이터 형식이 아래와 같다면,

10
13 15 34 23 45 65 33 11 26 42

N = 10,

for 문을 돌면서 age 변수에 2 번째 줄부터 숫자가 하나씩 들어오게된다.

※ 파이썬 이었다면 2번째 줄이 문자형식으로 한번에 들어오게 되어 아래 코드처럼 받아야 했을 것이다.

list(map(int,input().split()))

하지만 C++은 한줄 형식이라도 순서대로 입력받는 것 같다.

아무튼, max, min을 실시간으로 나누게 되고

마지막엔 cout << max - min; 으로 출력해주기만 하면 된다.

 

또한, 입력 데이터를 일일이 복사 붙여넣기 할 수는 없으므로 

freopen("input.txt", "rt", stdin);

freopen 함수로 input.txt 파일을 읽어 들인다.

내 vscode에선 파일의 절대 경로를 입력해야 제대로 입력 데이터를 읽어 올 수 있었다.

728x90