728x90
반응형
문제
https://www.acmicpc.net/problem/25305
코드
const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [N, k] = input[0].split(' ').map(Number);
const scores = input[1].split(' ').map(Number);
// 점수를 내림차순으로 정렬
scores.sort((a, b) => b - a);
// 상을 받는 커트라인, 즉 k번째 가장 높은 점수를 출력
console.log(scores[k - 1]);
코드 설명
sort() 메서드와 비교 함수 (a, b) => b - a를 사용하여 scores 배열을 내림차순으로 정렬해준 뒤 정렬된 배열에서 k-1 인덱스의 요소를 출력해줍니다. 상을 받는 사람 중 가장 낮은 커트라인 점수이기 때문입니다.
문제 풀이
이 문제는 주어진 점수 목록에서 상을 받는 사람들 중 가장 낮은 점수 즉 커트라인을 찾는 문제입니다.
입력으로 주어진 학생들의 점수 중 상위 k개 점수를 찾아 그 중 최소값을 출력하면 됩니다.
시간 복잡도
점수 배열을 정렬하는 데 O(N log N)시간이 소요됩니다. 여기서 N은 입력으로 주어진 점수의 개수를 의미합니다
공간 복잡도
입력을 저장하는 데 O(N)의 공간이 필요하고, 추가적인 공간은 사용 되지 않습니다.
728x90
반응형
'하루 알고리즘(JS)' 카테고리의 다른 글
[바미] 소트인사이드 (0) | 2024.04.26 |
---|---|
[바미] 수 정렬하기 2 (0) | 2024.04.25 |
[바미] 대표값 2 (0) | 2024.04.23 |
[바미] 수 정렬하기 (0) | 2024.04.22 |
[바미] 설탕 배달 다국어 (0) | 2024.04.21 |