일상 코딩
[C++] 나이 차이, min, max 실시간 갱신 본문
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
'C++ > 코딩테스트 대비' 카테고리의 다른 글
[C++ / 아마존 기출] 문자열 제어 및 탐색, 숫자만 출력 (0) | 2021.10.13 |
---|---|
[C++] 문자열 제어, 주민등록번호를 통한 나이 및 성별 출력 (0) | 2021.10.13 |
[C++] 진약수의 합 ex) 20의 진약수의 합 "1 + 2 + 4 + 5 + 10 = 22" 출력 (0) | 2021.10.08 |
[C++] 자연수의 합 ex) "3 + 4 + 5 + 6 + 7 = 25" 형태로 출력 (0) | 2021.10.07 |
[C++] 1부터 N까지 M의 배수합 (0) | 2021.10.07 |