[백준 19941 - Kotlin] 햄버거 분배

kldaji·2022년 3월 30일
1

백준

목록 보기
48/76
post-custom-banner

문제링크

import java.io.BufferedReader
import java.io.BufferedWriter

private lateinit var bufferedReader: BufferedReader
private lateinit var bufferedWriter: BufferedWriter

fun main() {
    bufferedReader = System.`in`.bufferedReader()
    bufferedWriter = System.out.bufferedWriter()

    // 1. get (n, k)
    val (n, k) = bufferedReader
        .readLine()
        .split(" ")
        .map { it.toInt() }

    // 2. get hp
    val hp = bufferedReader.readLine()
        .split("")
        .filter { it.isNotBlank() }

    val people = mutableListOf<Int>()
    val visited = Array(n) { false }
    for (i in hp.indices) {
        if (hp[i] == "P") {
            people.add(i)
            visited[i] = true
        }
    }

    var answer = 0
    // 3. person index 순회
    for (personIndex in people) {
        for (j in (personIndex - k)..(personIndex + k)) {
            // 4. out of range
            if (j !in 0 until n) continue
            // 5. already eaten or person
            if (visited[j]) continue
            // 6. eat hamburger
            visited[j] = true
            answer++
            break
        }
    }

    bufferedWriter.write("$answer")

    bufferedReader.close()
    bufferedWriter.close()
}

profile
다양한 관점에서 다양한 방법으로 문제 해결을 지향하는 안드로이드 개발자 입니다.
post-custom-banner

0개의 댓글