국회의원 선거
링크: 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) ) } } }