![2822번: 점수 계산](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6Mf7O%2FbtsCgYyFnas%2FrTDENPQkeoS1wrIdEusbb0%2Fimg.png)
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
2822번: 점수 계산백준/문제2023. 12. 20. 13:53
Table of Contents
문제 출처 : https://www.acmicpc.net/problem/2822
2822번: 점수 계산
8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문
www.acmicpc.net
언어 : Kotlin
문제 설명 :
상근이는 퀴즈쇼의 PD이다. 이 퀴즈쇼의 참가자는 총 8개 문제를 푼다. 참가자는 각 문제를 풀고, 그 문제를 풀었을 때 얻는 점수는 문제를 풀기 시작한 시간부터 경과한 시간과 난이도로 결정한다. 문제를 풀지 못한 경우에는 0점을 받는다. 참가자의 총 점수는 가장 높은 점수 5개의 합이다.
상근이는 잠시 여자친구와 전화 통화를 하느라 참가자의 점수를 계산하지 않고 있었다. 참가자의 8개 문제 점수가 주어졌을 때, 총 점수를 구하는 프로그램을 작성하시오.
- 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문제, ... 8번 문제이다.
- 첫째 줄에 참가자의 총점을 출력한다. 둘째 줄에는 어떤 문제가 최종 점수에 포함되는지를 공백으로 구분하여 출력한다. 출력은 문제 번호가 증가하는 순서이어야 한다.
제한 사항 :
- 시간 제한 : 1초
- 메모리 제한 : 128MB
입출력 예 :
입력 | 출력 |
20 30 50 48 33 66 0 64 |
261 3 4 5 6 8 |
20 0 50 80 77 110 56 48 |
373 3 4 5 6 7 |
20 30 50 80 110 11 0 85 |
355 2 3 4 5 8 |
풀이 :
import java.io.BufferedWriter
import java.io.OutputStreamWriter
data class Data(val idx: Int, val score: Int)
fun main() = with(System.`in`.bufferedReader()) {
val bw = BufferedWriter(OutputStreamWriter(System.out))
val arr = arrayListOf<Data>()
repeat(8) { arr += Data(it + 1, readLine().toInt()) }
arr.sortedByDescending { it.score }.slice(0 .. 4).also {
bw.appendLine("${it.sumOf { it.score }}")
bw.append(it.map { it.idx }.sorted().joinToString(" "))
}
bw.flush()
bw.close()
}
'백준 > 문제' 카테고리의 다른 글
1449번: 수리공 항승 (1) | 2023.12.21 |
---|---|
1940번: 주몽 (0) | 2023.12.20 |
17609번: 회문 (0) | 2023.12.19 |
10821번: 정수의 개수 (0) | 2023.12.19 |
11098번: 첼시를 도와줘! (1) | 2023.12.18 |
![스몰스테핑](https://t1.daumcdn.net/tistory_admin/static/manage/images/r3/default_L.png)
@스몰스테핑 :: 작은 발걸음
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!