https://www.acmicpc.net/problem/11758
Gold V
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main(args: Array<String>) {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val points = Array(3) { Pair(0, 0) }
for (i: Int in points.indices) {
val point = br.readLine()!!.split(" ").map{ x -> x.toInt() }
points[i] = Pair(point[0], point[1])
}
br.close()
bw.write(CCW(points).toString())
bw.flush()
bw.close()
}
fun CCW (points: Array<Pair<Int, Int>>): Int {
var dir = 0
for (i: Int in 0..2) {
dir += points[i].first * points[(i+1)%points.size].second
}
for (i: Int in 0..2) {
dir -= points[(i+1)%points.size].first * points[i].second
}
return if (dir > 0) 1
else if (dir < 0) -1
else 0
}
풀이는 별거 없다. 그냥 CCW 적용 문제
다만 Kotlin 문법 때문에 기록을 남긴다.
Java의 BufferedReader
, BufferedWriter
사용 가능. 사실 호환되게 낸거라 당연한거긴 하다.
Pair
을 간단하게 사용 가능. Java도 가능은 한데 특정 버전 이전이거나 우회, 혹은 제3자 라이브러리를 사용해야해서 백준이나 몇몇 곳에서는 못 쓰나 Kotlin은 그냥 가능.
위에서는 사용을 안했으나, Java와 달리 python의 f-string이랑 비슷한 string formatting이 가능하다. 위의 bw.write(CCW(points).toString())
의 경우 밑처럼 바꾸면 된다.
bw.write(${CCW(points)})