국회의원 선거

링크: 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
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기