커트라인
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 | 1024 MB | 11008 | 7124 | 6605 | 66.329% |
문제
2022 연세대학교 미래캠퍼스 슬기로운 코딩생활에 N 명의 학생들이 응시했다.
이들 중 점수가 가장 높은 k 명은 상을 받을 것이다. 이 때, 상을 받는 커트라인이 몇 점인지 구하라.
커트라인이란 상을 받는 사람들 중 점수가 가장 가장 낮은 사람의 점수를 말한다.
입력
첫째 줄에는 응시자의 수 N 과 상을 받는 사람의 수 k 가 공백을 사이에 두고 주어진다.
둘째 줄에는 각 학생의 점수 x 가 공백을 사이에 두고 주어진다.
출력
상을 받는 커트라인을 출력하라.
제한
- 1≤N≤1000
- 1≤k≤N
- 0≤x≤10000
예제 입력 1 복사
5 2
100 76 85 93 98
예제 출력 1 복사
98
시험 응시자들 가운데 1등은 100점, 2등은 98점, 3등은 93점이다. 2등까지 상을 받으므로 커트라인은 98점이다.
풀이
점수값들을 받고 내림차순으로 정렬 후 커트라인-1의 인덱스값을 출력한다.
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException {
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int k = Integer.parseInt(st.nextToken());
List<Integer> scoreList = new ArrayList<>();
st = new StringTokenizer(br.readLine());
while (st.hasMoreTokens()) {
scoreList.add(Integer.parseInt(st.nextToken()));
}
scoreList.sort(Comparator.reverseOrder());
bw.write(scoreList.get(k - 1)+"\n");
bw.flush();
bw.close();
}
}
시간복잡도
그나마 가장 높아보이는 시간복잡도가 sort -> O(NlogN)
총 시간복잡도 O(NlogN)?
다른사람 풀이
1. StringTokenizer를 사용하지않고 Split으로 공백기준 분리
정리한 개념
https://keeeeeepgoing.tistory.com/55
'자바 > 알고리즘 문제 풀이' 카테고리의 다른 글
백준/10989 수 정렬하기 3 (0) | 2022.12.03 |
---|---|
백준/2751 수 정렬하기 2 (0) | 2022.12.03 |
백준/2587 대표값2 (0) | 2022.12.03 |
백준/2750 수 정렬하기 (0) | 2022.12.03 |
백준/1439 뒤집기 (0) | 2022.10.29 |
댓글