반응형
https://www.acmicpc.net/problem/1037
[방법 1]
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main(){
int n;
vector <int> a;
cin >> n;
for(int i=0; i<n; i++){
int tmp = 0;
cin >> tmp;
a.push_back(tmp);
}
sort(a.begin(),a.end());
cout << a[0]*a[n-1] <<endl;
}
처음에는 sort함수를 써서 오름차순 정리로 제일 작은 수와 큰 수를 찾아내면 되는 부분을
if문을 써서
for(int i=0; i<n; i++){
if(min>a[i])
min = a[i];
if(max<a[i])
max = a[i];
}
이런 식으로 표기했는데 별로 효율적이지 않은 방법이었다.
sort문의 활용을 좀 더 폭 넓게 사용하도록 연습해야한다.
[방법 2]
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
int N;
cin >> N ;
int *Num = new int[N];
for(int i=0;i<N;i++){
cin >> Num[i];
}
sort(Num,Num+N);
cout << Num[0]*Num[N-1];
}
포인터를 이용해 푸니 더 간단해졌다.
c언어를 언어 배우고 초반에만 쓰고 그 뒤로 안쓰다가 알고리즘 풀이 때문에 다시 c++로 넘어왔는데,
포인터를 다시 익히고 가는 계기가 되겠다.
반응형
'Algorithm > 백준' 카테고리의 다른 글
[백준] 10828번 : 스택 / c++ (0) | 2020.05.22 |
---|---|
[백준] 1157번 : 단어 공부 / c++ (0) | 2020.05.22 |
[백준] 11060번 : 점프 점프 / c++ (0) | 2020.05.21 |
[백준] 11654번 : 아스키코드 / c++ (0) | 2020.05.18 |
[백준] 4344번 : 평균은 넘겠지 / c++ (0) | 2020.05.18 |