[백준] 상근이의 체스판 (3076)(kotlin)

문제 설명

백준 3076번 문제 링크

입력 및 출력

» 입력

  • 첫째 줄에 두 양의 정수 R과 C가 주어진다. (1 ≤ R, C ≤ 10) 둘째 줄에 두 양의 정수 A와 B가 주어진다. (1 ≤ A, B ≤ 10)

» 출력

출력은 R * A행 C * B열로 이루어져 있어야 하며, 문제에서 설명한 상근이의 체스판을 출력한다.

예제 입출력(테스트케이스)

입력 출력
5 5
2 3
XXX…XXX…XXX
XXX…XXX…XXX
…XXX…XXX…
…XXX…XXX…
XXX…XXX…XXX
XXX…XXX…XXX
…XXX…XXX…
…XXX…XXX…
XXX…XXX…XXX
XXX…XXX…XXX

문제 풀이1

fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
    val (y, x) = readLine().split(" ").map { it.toInt() }
    val (dy, dx) = readLine().split(" ").map { it.toInt() }

    val black = "X".repeat(dx)
    val white = ".".repeat(dx)

    var blackFirst = ""
    var whiteFirst = ""

    for (i in 0 until x) {
        if (i % 2 == 0) {
            blackFirst += black
            whiteFirst += white
        }
        else {
            blackFirst += white
            whiteFirst += black
        }
    }

    for (i in 0 until y) {
        repeat(dy) {
            if (i % 2 == 0) println(blackFirst)
            else println(whiteFirst)
        }
    }
}