• Home
  • About
    • Zzu-h photo

      Zzu-h

      주니어 Android 개발자입니다.

    • Learn More
    • Email
    • Instagram
    • Tistory
    • Github
  • Posts
    • All Posts
    • All Tags
    • All Categories
  • Projects

[BOJ] 1417 국회의원 선거

12 May 2022

Reading time ~1 minute

국회의원 선거

링크: 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)
              )
          }
      }
    }
    


PSBOJsilver그리디 Share Tweet +1