어떻게 풀지 바로 알았다! 근데 구현이 문제였다. 전에 set에 대해 잠시 살펴봤었는데 중복 허용 안 하고 자동으로 정렬된다는 점 때문에 이걸 쓰려고 했다. 하지만 이상하게 s.begin() s.end()이 곱해지지 않았다. 찾아보니 이 자료형은 iterator이라고 뭐가 따로 있었다. set<int>::iterator iter; 변수 만드는 것도 이상하게 생겼다..
#include <iostream>
#include <set>
using namespace std;
int main() {
int n, tmp;
set<int> s;
//set<int>::iterator iter;
scanf("%d", &n);
for(int i = 0; i < n; i++){
scanf("%d", &tmp);
s.insert(tmp);
}
int start = s.begin() s.end();
printf("%d", start * end);
}
(돌아가지 않는 코드..)
cout << s[0];
혹시나해서 이렇게도 해봤는데 안 됐다.
그래서 친숙한 배열을 사용했다.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int n, tmp, i;
int arr[50];
scanf("%d", &n);
for(i = 0; i < n; i++){
scanf("%d", &tmp);
arr[i] = tmp;
}
sort(arr, arr+n);
cout << arr[0] * arr[n-1];
}
벡터를 사용해서 짜보기
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
int main() {
int n, i;
scanf("%d", &n);
vector<int> arr(n);
for(i = 0; i < n; i++)
scanf("%d", &arr[i]);
sort(arr.begin(), arr.end());
cout << arr[0] * arr[n-1];
}
배열을 최대 크기로 만든 다음 n까지만 확인하도록 만들었는데
벡터로 하면 동적할당 필요없이 그냥 vector arr(n)로 크기 맞춰서 만들 수 있다.
코드 고치는 김에 필요없는 tmp도 지웠다.
sort(arr.begin(), arr.end())
정렬은 이렇게 하면 된다!
'백준' 카테고리의 다른 글
7567 그릇 (0) | 2019.10.09 |
---|---|
6539 만취한 상범 (0) | 2019.10.09 |
1100 하얀칸 (0) | 2019.10.08 |
1009 분산처리 (0) | 2019.10.08 |
2902 KMP는 왜 KMP일까? (0) | 2019.10.08 |