처음 문제를 보았을 때, 동적할당이 필요하니까 vector를 써야겠다고 생각하고,
일일이 v에 값을 집어넣은 후 최대값과 최소값을 비교해서 찾아냈다.
그리고 다시 두번째는 대소 비교하는 방식을 이용하는 코드로 짰다.
나는 저 대소비교 방식을 잘 사용하지 않는데, 많은 사람들이 자주 이용하는 것 같아서 사용법을
익히기 위해 한번 짜보았다.
그러면서 코드를 다시 보다가, 그냥 vector를 만들 필요없이 입력 즉시 대소 비교가 가능하다는 점을 발견했다.
불필요한 코드를 줄일 수 있었다.
나는 대소 비교 보다는 max,min 함수를 자주 이용하곤 한다.
하지만 저 방식도 습득해야 겠다.
처음 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include<iostream> #include<vector> using namespace std; int main() { int n; int maxx = -987654321; int minn = 987654321; cin >> n; vector<int> v; for (int i = 0; i < n; i++) { int a; cin >> a; v.push_back(a); } for (int i = 0; i < v.size(); i++) { if (v[i] < minn) { minn = v[i]; } if (v[i] > maxx) { maxx = v[i]; } } cout << minn << " " << maxx << endl; return 0; } | cs |
두번째 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | #include<iostream> #include<vector> using namespace std; int main() { int n; int maxx = -987654321; int minn = 987654321; cin >> n; vector<int> v; for (int i = 0; i < n; i++) { int a; cin >> a; v.push_back(a); } for (int i = 0; i < v.size(); i++) { v[i] < minn ? minn = v[i] : minn = minn; v[i] > maxx ? maxx = v[i] : maxx = maxx; } cout << minn << " " << maxx << endl; return 0; } | cs |
세번째 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | #include<iostream> #include<vector> using namespace std; int main() { int n; int maxx = -987654321; int minn = 987654321; cin >> n; for (int i = 0; i < n; i++) { int a; cin >> a; a < minn ? minn = a : minn = minn; a > maxx ? maxx = a : maxx = maxx; } cout << minn << " " << maxx << endl; return 0; } | cs |
반응형