국회의원 선거
링크: https://www.acmicpc.net/problem/1417
다솜이는 한 차례씩 자신을 제외한 가장 최고값을 자기와 비교하고 자기가 작다고 생각이 들면 그 값을 1 가져온다.
그 것을 다솜이가 가장 최고가 되었을 때까지 진행하며, 그 가져온 횟수를 카운트한다.
그 카운트된 값을 반환하며 종료한다.
하지만 만일 자기가 단일 후보일 땐 당선이 확실하므로 0을 반환한다.
- 정답 코드
class Boj1417 {
companion object{
val arr = mutableListOf<Int>()
var c = 0
fun solve(count: Int):Int {
var maxIdx = 1
(1 until c).forEach{ if(arr[it] >= arr[maxIdx]) maxIdx = it }
if(arr[maxIdx] < arr[0]) return count
arr[0] += 1
arr[maxIdx] -= 1
return solve(count + 1)
}
@JvmStatic
fun main(args: Array<String>){
c = readln().toInt()
for(i in 0 until c)
arr.add(readln().toInt())
println(
if(c == 1) 0
else solve(0)
)
}
}
}
'ProblemSolving' 카테고리의 다른 글
[BOJ] 1094_막대기 (0) | 2022.05.14 |
---|---|
[BOJ] 1501_영어 읽기 (0) | 2022.05.13 |
[BOJ] 1010_다리 놓기 재해결 (0) | 2022.05.11 |
[BOJ] 1377_버블 소트 (0) | 2021.03.14 |
[BOJ] 1354_무한 수열 2 (0) | 2021.03.13 |
최근댓글