-
2752번. 세수정렬IT Tech/PS 2020. 12. 1. 22:32
세수정렬 성공분류
문제
동규는 세수를 하다가 정렬이 하고싶어졌다.
숫자 세 개를 생각한 뒤에, 이를 오름차순으로 정렬하고 싶어 졌다.
숫자 세 개가 주어졌을 때, 가장 작은 수, 그 다음 수, 가장 큰 수를 출력하는 프로그램을 작성하시오.
입력
숫자 세 개가 주어진다. 이 숫자는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 이 숫자는 모두 다르다.
출력
제일 작은 수, 그 다음 수, 제일 큰 수를 차례대로 출력한다.
예제 입력
3 1 2
예제 출력
1 2 3
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); vector<int> a; int tmp; for (int i = 0; i < 3; i++) { cin >> tmp; a.push_back(tmp); } sort(a.begin(), a.end()); for (int i = 0; i < 3; i++) { cout << a[i] << " "; } return 0; }
STL 사용 풀이
#include<iostream> #include<vector> #include<algorithm> using namespace std; int n = 0; int arr[3]; int tmp[3]; void merge(int st, int en) { // ... int mid = (st + en) / 2; int lidx = st; int ridx = mid; for (int i = st; i < en; i++) { if (ridx == en) tmp[i] = arr[lidx++]; else if (lidx == mid) tmp[i] = arr[ridx++]; else if (arr[lidx] <= arr[ridx]) tmp[i] = arr[lidx++]; else tmp[i] = arr[ridx++]; } for (int i = st; i < en; i++) arr[i] = tmp[i]; } void merge_sort(int st, int en) { if (en - st == 1) return; int mid = (st + en) / 2; merge_sort(st, mid); merge_sort(mid, en); merge(st, en); } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); for (int i = 0; i < 3; i++) cin >> arr[i]; merge_sort(0, 3); for (int i = 0; i < 3; i++) cout << arr[i] << ' '; return 0; }
머지소트를 사용해서 풀이
#include<iostream> #include<vector> #include<algorithm> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); int a, b, c; cin >> a >> b >> c; if (a > b && a > c) { if (b > c) { cout << c << " " << b << " " << a << endl; } if (c > b) { cout << b << " " << c << " " << a << endl; } } else if (b > c && b > a) { if (c > a) { cout << a << " " << c << " " << b << endl; } if (a > c) { cout << c << " " << a << " " << b << endl; } } else if (c > a && c > b) { if (a > b) { cout << b << " " << a << " " << c << endl; } if (b > a) { cout << a << " " << b << " " << c << endl; } } return 0; }
노가다 풀이 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
반응형'IT Tech > PS' 카테고리의 다른 글
2490번. 윷놀이 (0) 2020.12.09 2480번. 주사위 세개 (0) 2020.12.02 2751번. 수 정렬하기 2 (0) 2020.11.30 11728번. 배열 합치기 (0) 2020.11.30 4948번. 베르트랑 공준 (0) 2020.11.09