์ง๊ฐ์ผ๊ฐํ(1711๋ฒ)
Gold 5
#๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ #๊ธฐํํ #ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
๊ฐ ์ฃผ์ด์ง๋ ์ ์์ ๋ฌด์์๋ก ์ค๋ณต๋์ง ์๊ฒ 3๊ฐ๋ฅผ ๊ณจ๋ผ ๋ง๋ค ์ ์๋ ์ง๊ฐ์ผ๊ฐํ์ ๊ฐ์๋ฅผ ๊ตฌํด์ผ ํ๋ค.
์ ์ ๊ฐ์๊ฐ 1500๊ฐ๊น์ง ์๊ณ , ์๊ฐ์ ํ์ด 5์ด์ด๋ค.
๊ฒฐ์ ์ ์ผ๋ก ๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ถ๋ฅ๋์ด ์๋ค.
์ด๋ ์ต๋ 1500๊ฐ์ ์ ์์ 3๊ฐ๋ฅผ ๊ณจ๋ผ์ผ ํ ๋, ๋ฌด์ง์ฑ ํ์์ด ๊ฐ๋ฅํ๋ค๋ ๋ป์ด๋ค.
๋ฌด์ง์ฑ ํ์์์ ๋์จ 3๊ฐ์ ์ ์์ ๊ฐ ์ ์ฌ์ด์ ๊ธธ์ด๋ฅผ ๊ตฌํ๊ณ ๊ทธ ๊ธธ์ด๋ฅผ ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ ๊ณต์์ ์ด์ฉํด ์ง๊ฐ์ผ๊ฐํ์ธ์ง ํ์ ํ๋ฉด ๋๋ค.
๋ ์ (x1, y1), (x2, y2)๊ฐ ์์ ๋, ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋
(x2 - x1) * (x2 - x1)์ ์ ๊ณฑ + (y2 - y1) * (y2 - y1)์ ์ ๊ณฑ์ ๋ฃจํธ๋ฅผ ์์ด ๊ฐ์ด ๋๋ค.
๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด์ฉํด ํผํ๊ณ ๋ผ์ค์ ์ ๋ฆฌ๋ฅผ ์ด์ฉํด ์ฃผ๋ฉด ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val cnt = readLine().toInt()
val points = mutableListOf<List<Int>>()
var triangles = 0
for (i in 0 until cnt) {
points.add(readLine().split(" ").map { it.toInt() })
}
for (i in 0 until points.size) {
for (j in i + 1 until points.size) {
for (k in j + 1 until points.size) {
val distance1 = getPointDistance(points[i][0], points[i][1], points[j][0], points[j][1])
val distance2 = getPointDistance(points[j][0], points[j][1], points[k][0], points[k][1])
val distance3 = getPointDistance(points[k][0], points[k][1], points[i][0], points[i][1])
if (distance1 == distance2 + distance3 || distance2 == distance1 + distance3 || distance3 == distance1 + distance2) {
triangles++
}
}
}
}
println(triangles)
}
private fun getPointDistance(x1: Int, y1: Int, x2: Int, y2: Int): Long {
val distanceX = ((x2 - x1).toLong() * (x2 - x1).toLong())
val distanceY = ((y2 - y1).toLong() * (y2 - y1).toLong())
return distanceX + distanceY
}
๋ฌธ์ ํ์ด
์ ๋ค์ ์ขํ๋ฅผ ์ ๋ ฅ๋ฐ์์ ๋ค์ด๊ฐ ์ขํ๋ค ์ค 3๊ฐ๋ฅผ ์ค๋ณต ์์ด ์ ํํ ์ ์๊ฒ 3์ค for๋ฌธ์ ์ฌ์ฉํด ์ฃผ๊ณ , ์ ํ๋ 3๊ฐ์ ์ ์ ์ด์ฉํด
๊ฐ ์ ์ ๊ฑฐ๋ฆฌ 3๊ฐ๋ฅผ ๊ตฌํ ๋ค์, ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ๋ฅผ ๋์ ํด์ ์ง๊ฐ์ผ๊ฐํ์ ๊ฐ์๋ฅผ ์ธ์ค๋ค.
ํผํ๊ณ ๋ผ์ค ๊ณต์์ด, ๊ฐ์ฅ ๊ธด ๋ณ์ ๊ธธ์ด์ ์ ๊ณฑ์ด ๋๋จธ์ง ๋ณ์ ๊ธธ์ด์ ์ ๊ณฑ์ด๋ค.๋ ์ ์ ๊ฑฐ๋ฆฌ ๊ณต์์์๋ ๋ง์ง๋ง์ ๋ฃจํธ๋ฅผ ์์์ค์ผ ํ๋ค.๋ฃจํธ๋ฅผ ์์ฐ๊ฒ ๋๋ฉด ์์๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊ณ์ฐ์ด ๋ฒ๊ฑฐ๋ก์์ง๊ณ ๋ฏธ์ธํ ์์ ์ฐจ์ด๋ก ์ค๋ต์ด ๋ ์ ์๊ธฐ ๋๋ฌธ์๋ ์ ์ฌ์ด์ ๊ธธ์ด๋ ๋ฃจํธ๋ฅผ ์ ๊ฑฐํ ์ํ๋ก long ๋ฐ์ดํฐ๋ก ๋ณ๊ฒฝํด์ ๋ฐํํ๋ค.
๊ทธ๋ฌ๋ฉด ์ ๊ณฑํ ๋ฐ์ดํฐ๊ฐ ์ค๊ธฐ ๋๋ฌธ์ ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ ๊ณต์์ ์ด์ฉํ ๋ ์ ๊ณฑ์ ํ ํ์ ์์ด ๋ง์ ๋ง ์งํํด์ ํ์ธํ๋ฉด ๋๋ค.๊ทธ๋ฌ๋ฉด ์ ํํ๊ฒ ๊ฐ์ ๊ตฌํ ์ ์๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
์ด๊ฑฐ๋ ํฌ๊ฒ ์ด๋ ต์ง ์๋ค.
๋ฌด์ง์ฑ ํ์์ผ๋ก ์ 3๊ฐ๋ฅผ ๊ตฌํ ์ ์๋ ๊ฒ์ด ํธํ๋ ๊ฒ ๊ฐ๋ค.
์ ์ฒด ํ์์ผ๋ก ๊ตฌํ 3๊ฐ์ ์ ์ผ๋ก ํผํ๊ณ ๋ผ์ค ์ ๋ฆฌ๋ฅผ ํ์ฉํ๋ฉด ๋๋ ๋ฌธ์ ์ด๋ค.
๋ด ๊ธฐ์ค ์ฒด๊ฐ ๋์ด๋๋ ์ค๋ฒ 4~์ค๋ฒ 3์ด๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Gold' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, G4] ๋ฐฑ์ค 9935๋ฒ ๋ฌธ์์ด ํญ๋ฐ (0) | 2024.10.01 |
---|---|
[Kotlin, G5] ๋ฐฑ์ค 10827๋ฒ a^b (0) | 2024.09.19 |
[Kotlin, G1] ๋ฐฑ์ค 1300๋ฒ K๋ฒ์งธ ์ (0) | 2024.09.09 |
[Kotlin, G5] ๋ฐฑ์ค 16928๋ฒ ๋ฑ๊ณผ ์ฌ๋ค๋ฆฌ ๊ฒ์ (0) | 2024.08.12 |
[Kotlin, G5] ๋ฐฑ์ค 1013๋ฒ Contact (0) | 2024.08.07 |