- 문제
- 풀이
#include <iostream>
using namespace std;
void Swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int n = 0, k = 0;
int input[1000] = { 0 };
cin >> n >> k;
for (int i = 0; i < n; i++)
{
cin >> input[i];
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (input[j] > input[j + 1])
{
Swap(input[j], input[j+1]);
}
}
}
// 끝에서부터 k번째 인덱스에 해당하는 값을 출력해야 하므로
// 최종 결과값은 n - k번째 값이 된다.
int result = input[n - k];
cout << result;
return 0;
}
- 메모
입력 받은 값을 오름차순 한 뒤 뒤에서부터 K번째에 해당하는 값(n - k)을 출력한다.
메모리 제한이 1024MB이고 N의 최대 범위가 1000까지로 크지 않기 때문에 동적할당 하지 않고 배열에 입력받아 사용했다.
'코딩테스트' 카테고리의 다른 글
[백준/2750번/C++] 수 정렬하기 (버블정렬, 선택정렬, 삽입정렬) (0) | 2024.08.20 |
---|---|
[백준/1427번/C++] 소트인사이드 (0) | 2024.08.18 |
☆ [백준/15894번/C++] 수학은 체육과목 입니다 (0) | 2024.08.16 |
[백준/14215번/C++] 세 막대 (0) | 2024.08.15 |
[백준/9063번/C++] 대지 (0) | 2024.08.14 |