입력 목록 중에, 최소값과 최대값을 찾아서 순차적으로 출력하는 문제이다.
// 아래의 코드는 dev c++환경에서 동작됩니다.
// visual studio에서는 bit/stdc++.h가 기본적으로 없기 때문에
// 정삭적인 작동이 되지 않을 수 있습니다.
#include <bits/stdc++.h>
using namespace std;
int n, min_value = INT_MAX, max_value = INT_MIN;
vector<int> a;
int main() {
ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
cin >> n;
for(int i = 0; i < n; i++)
{
int temp;
cin >> temp;
if(temp > max_value) max_value = temp;
if(temp < min_value) min_value = temp;
}
cout << min_value << "\\n";
cout << max_value << "\\n";
return 0;
}
문제를 풀고나서 다른 사람들의 풀이를 보니 어떤 사람들은 정렬 후에 0번째 요소와 마지막 요소를 출력하는 식으로 푸는 것을 보았다. 물론 sort함수의 평균시간복잡도가 n log n이다보니. 효율적인 방법이라고는 할 수 없지만, 아이디어가 참 신선했다.
참고로 STL 라이브러리에 max_element와 min_element도 있는데, 해당 STL 알고리즘을 통해서도 문제를 빠르게 풀 수 있다.