[백준 10158 - Kotlin] 개미
import java.io.BufferedReader
import java.io.BufferedWriter
import kotlin.math.abs
private lateinit var bufferedReader: BufferedReader
private lateinit var bufferedWriter: BufferedWriter
fun main() {
bufferedReader = System.`in`.bufferedReader()
bufferedWriter = System.out.bufferedWriter()
// 1. get (w, h)
val (w, h) = bufferedReader
.readLine()
.split(" ")
.map { it.toInt() }
// 2. get (p, q)
var (p, q) = bufferedReader
.readLine()
.split(" ")
.map { it.toInt() }
// 3. get t
val t = bufferedReader.readLine().toInt()
// 4. get result
// (p + t) : 0부터 시작한다는 것을 의미합니다.
// % (2 * w) : 다시 0으로 돌아오는 시점을 의미합니다.
// (p + t) % (2 * w) 의 값이 0 ~ w 사이의 값이라면 그 값만큼 이동시켜주면 되지만,
// 다시 돌아오는 경우 (즉, (w + 1) ~ (2 * w - 1)) 사이의 값인 경우를 처리해야 합니다.
// 예를 들어, (p + t) % (2 * w)의 값이 8이라면, 4만큼 이동시켜주어야 합니다. 8 = 6 + 2 -> abs(6 - (6 + 2)) = 2 -> 6 - 2 = 4
p = w - abs(w - (p + t) % (2 * w))
q = h - abs(h - (q + t) % (2 * h))
bufferedWriter.write("$p $q")
bufferedReader.close()
bufferedWriter.close()
}
Author And Source
이 문제에 관하여([백준 10158 - Kotlin] 개미), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kldaji/백준-10158-Kotlin-개미저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)