- 문제
- 풀이
#include <iostream>
using namespace std;
int main()
{
int n = 0;
cin >> n;
int max = -1000000;
int min = 1000000;
int value = 0;
for (int i = 0; i < n; i++)
{
cin >> value;
if (value < min)
{
min = value;
}
if (value > max)
{
max = value;
}
}
cout << min << ' ' << max;
return 0;
}
- 메모
max와 min과의 조건 검사시 else가 아닌 if, if로 각각의 조건을 나눠줘야 한다.
입력받은 값이 두개의 조건을 모두 만족하는 경우가 존재하기 때문이다.
또한 if문을 사용해서 각각의 값을 비교하지 않고, 아래처럼 vector의 max, min 판별 함수를 사용해 푸는 방법도 있다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
int n = 0;
cin >> n;
int max = -1000000;
int min = 1000000;
vector<int> inputs = {};
for (int i = 0; i < n; i++)
{
int value = 0;
cin >> value;
inputs.push_back(value);
}
// 이렇게 하면 result의 첫번째에는 최소값, 두번째에는 최대값이 들어가게 된다.
auto result = minmax_element(inputs.begin(), inputs.end());
cout << *result.first << ' ' << *result.second;
return 0;
}
'코딩테스트' 카테고리의 다른 글
[백준/2577번/C++] 숫자의 개수 (0) | 2024.05.18 |
---|---|
[백준/1152번/C++] 단어의 개수 (0) | 2024.05.15 |
★ [백준/10250번/C++] ACM 호텔 (0) | 2024.05.14 |
[백준/2884번/C++] 알람시계 (0) | 2024.05.13 |
[백준/2562번/C++] 최댓값 (0) | 2024.05.12 |