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)})