728x90
https://www.acmicpc.net/problem/11399
11399번: ATM
첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000)
www.acmicpc.net
문제 풀이
1. 시간 정보를 P 배열에 저장한다.
2. 배열 P를 오름 차순 정렬 한다.
3. 결과가 P[0] + (P[0] + P[1]) + (P[0] + P[1] + P[2]) ... 로 되므로 이중 for 문을 이용하여 결과를 구한다.
4. i 는 0부터 N까지 탐색하고 j는 0부터 i까지 탐색한다.
코드
import java.io.*
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val N = br.readLine().toInt()
val P = mutableListOf<Int>()
br.readLine().split(" ").map { it.toInt() }.forEach {
P.add(it)
}
// 시간을 기준으로 오름차순 정렬
P.sort()
var result = 0
for (i in 0 until N) {
var sum = 0
for (j in 0..i) {
sum += P[j]
}
result += sum
}
println(result)
}
728x90
'알고리즘(w.KOTLIN) > 그리디(Greedy)' 카테고리의 다른 글
[백준][코틀린][1285] 동전 뒤집기 (0) | 2023.05.08 |
---|---|
[백준][코틀린][2138] 전구와 스위치 (0) | 2023.05.02 |
[백준][코틀린][1080] 행렬 (0) | 2023.04.24 |
[백준][코틀린][1931] 회의실 배정 (0) | 2023.04.21 |
[백준][코틀린][11047] 동전 0 (0) | 2023.04.17 |