시험 끝~~~
으으.. 너무 졸리다...
오늘은 머리가 좀 아파서 간단한 것을 풀어야겠다.
문제
https://www.acmicpc.net/problem/2693
2693번: N번째 큰 수
첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000
www.acmicpc.net
처음에 봤을 때는 뭔가 어려워 보였는데 막상 문제를 읽어보니 엄청 쉬웠다.
일단 몇개의 케이스가 있는지 개수를 입력받고 while문을 그 수만큼 반복해 주도록 한다. while문 안에서는 크기가 10인 배열에 입력을 받아 sort를 이용해 내림차순으로 정렬해 준다. 여기서 내림차순은 greater <int>()를 이용하면 된다. 그리고 3번째로 큰 수를 찾아야 하니 3번째의 인덱스인 2를 넣어 출력해 준다.
#include <iostream>
#include <algorithm>
using namespace std;
int A[10];
int n = 2; //3번째 인덱스
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int T;
cin >> T;
while (T--) {
for (int i = 0; i < 10; i++) {
cin >> A[i];
}
sort(A, A + 10, greater<int>()); // greater<int>()에서 () 잊지 말기!!
cout << A[n] << "\n";
}
return 0;
}
중간에 내림차순을 할 때 ()를 빼먹어서 당황했지만 확실히 어려운 것부터 하면 이런 문제는 쉽게 풀 수 있는 것 같다.
다른 풀이를 찾아보니 오름차순으로 정렬하여 인덱스를 해당 인덱스로 바꿔서 푸신 분도 있었다.
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int testcase;
int arr[10] = { 0, };
cin >> testcase; // 테스트케이스의 갯수
for (int j = 0; j < testcase; j++) {
for (int i = 0; i < 10; i++) {
cin >> arr[i];
}
sort(arr, arr + 10);
// 8번째 수 출력 (배열은 0부터 시작하므로 7)
cout << arr[7] << endl;
}
return 0;
}
출처: https://beginnerdeveloper-lit.tistory.com/23 [초보 개발자의 이야기, 릿허브:티스토리]
이 분은 N에 3을 그대로 넣고 오름차순으로 정렬한 후 총개수에서 이 N을 빼서 인덱스로 넣어주었다.
오호... 난 이 생각을 못했다... 10에서 N을 빼면 N을 그대로 3을 넣어도 되는구나...ㅎㅎ
//2693 N번쨰 큰수
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int A[10];
int N = 3;
int num = 0;
cin >> num;
for (int i = 0; i < num; i++) {
for (int j = 0; j < 10; j++) {
cin >> A[j];
}
sort(A, A + 10);
cout << A[10 - N] << endl;
}
return 0;
}
출처: https://se-jung-h.tistory.com/entry/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98C-%EB%B0%B1%EC%A4%80-2693-N%EB%B2%88%EC%A7%B8-%ED%81%B0%EC%88%98
요즘 날씨가 추워서 그런지 머리가 멍하고 아프다...
다들 몸 조심하세요...
비록 밖은 춥지만 우리의 하루하루는 따뜻하기를...
'백준 > C++' 카테고리의 다른 글
[C++] 백준 1083번 소트 (2) | 2023.12.21 |
---|---|
[C++] 백준 2776번 암기왕 (4) | 2023.12.20 |
[C++] 백준 1946번 신입 사원 (2) | 2023.12.18 |
[C++] 백준 2587번 대표값2 (2) | 2023.12.17 |
[C++] 백준 1931번 회의실 배정 (2) | 2023.12.16 |