728x90
문제
https://www.acmicpc.net/problem/11004
11004번: K번째 수
수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제 분석
입력 받을 수의 개수와 몇 번째에 있는 수를 출력할지를 입력받고,
그 수를 오름차순으로 정렬한 후 입력받은 수의 번째에 있는 수를 출력하면 된다.
알고리즘 설계
우선 몇 가지 수를 받을지, 몇 번째 수를 출력할지, 수를 입력 받을 정수형 변수,
int가 들어가는 vector를 하나 만들어준다.
이후 몇 가지 수를 받을지와 몇 번째 수를 출력할지 입력 받고
몇 가지 수를 받을지 입력 받은 수 대로 반복문을 돌려준다.
반복문 내부에서 입력을 받고, vector에 넣어준다.
반복문이 끝나면 sort 함수를 사용하여 오름차순 정렬을 해주고, 입력 받은대로 출력해준다.
유의점
시간 초과가 날 수 있으니 아래 코드를 삽입하여야한다.
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n, k, input;
vector<int> vec;
cin >> n >> k;
for (int i = 0; i < n; ++i)
{
cin >> input;
vec.push_back(input);
}
sort(vec.begin(), vec.end());
cout << vec[k - 1];
}
728x90
'ALGORITHM > C++ - 백준' 카테고리의 다른 글
[백준 1920] 수 찾기 (1) | 2023.11.13 |
---|---|
[백준 25192] 인사성 밝은 곰곰이 (1) | 2023.11.13 |
[백준 10825] 국영수 (0) | 2023.11.09 |
[백준 7795] 먹을 것인가 먹힐 것인가 (0) | 2023.11.09 |
[백준 10816] 숫자 카드 2 (1) | 2023.11.09 |
댓글