์ ์ ์ง์ฌ๊ฐํ(9196๋ฒ)
Silver 5
#๋ธ๋ฃจํธํฌ์ค ์๊ณ ๋ฆฌ์ฆ #์ ๋ ฌ #๋ฐํ์ ์ ์ ์ ์ฒ๋ฆฌ
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
๋ฌธ์ ์์์ ์ง์ฌ๊ฐํ์ ํฌ๊ธฐ๋ฅผ ํ๋ณํ๋ ๋ฐฉ๋ฒ์ 2๊ฐ์ง์ด๋ค.
1. ๋๊ฐ์ ์ด ๋ ๊ธด ์ง์ฌ๊ฐํ์ด ๋ ํฐ ์ง์ฌ๊ฐํ์ด๋ค.
2. ๋๊ฐ์ ์ ๊ธธ์ด๊ฐ ๊ฐ์ผ๋ฉด ๋์ด๊ฐ ๋ ๋์ ๊ฒ์ด ๋ ํฐ ์ง์ฌ๊ฐํ์ด๋ค.
์ด 2๊ฐ์ง ์กฐ๊ฑด์ ์ด์ฉํด ์ ๋ ฅ๋ฐ๋ ์ง์ฌ๊ฐํ๋ณด๋ค ํฐ ์ง์ฌ๊ฐํ ์ค ๊ฐ์ฅ ์์ ์ง์ฌ๊ฐํ์ ์ถ๋ ฅํด์ผ ํ๋ค.
๋ฌธ์ ์กฐ๊ฑด์ด ์ง์ฌ๊ฐํ ๊ฐ์ด 150์ ๋์ง ์๋๋ค๊ณ ํ๋ค. ์ด๋ฌ๋ฉด ์ ์ฒด ํ์์ ํด๋ ์๊ด์๋ ์ ํ์ด๋ค.
๊ทธ๋์ ๋์ด์ ๋๋น๊ฐ 1๋ถํฐ 150๊น์ง์ ์ง์ฌ๊ฐํ๋ค์ ๋ชจ๋ ๋ฝ์์ ์ ๋ ฌ์ํค๋ฉด ๋๋ค.
ํ์ง๋ง ๋ฌธ์ ์ ์กฐ๊ฑด์ด ์๋ค.
1. ๋๋น(w)๊ฐ ๋์ด(h) ๋ณด๋ค ์ปค์ผ ํ๋ค.
2. ์ง์ฌ๊ฐํ๋ง์ ๋ฝ์์ผ ํ๋ค.
์ 2๊ฐ์ง์ ์กฐ๊ฑด์ ์ฝ๋๋ก ๊ตฌํํด ๋ณด์.
์ฐ์ ๋์ด์ ๋๋น๊ฐ ๊ฐ 1๋ถํฐ 150๊น์ง ๋ฝ์ ์ ์๋ 2์ค ๋ฐ๋ณต์ ํด์ผ ํ๋ค.
๊ฑฐ๊ธฐ์ w(๋๋น)๋ ๋์ด๋ณด๋ค ๋ฌด์กฐ๊ฑด ์ปค์ผ ํ๋ค. ๋ํ ์ ์ฌ๊ฐํ์ด ๋๋ฉด ์ ๋๋ค.
val allSquare = mutableListOf<List<Int>>()
// ๋๋น๊ฐ ๋์ด๋ณด๋ค ์ปค์ผ ํจ.
for (h in 1 .. 150) {
for (w in h .. 150) {
if (h == w) continue
allSquare.add(listOf(h, w))
}
}
์ ๋ฐ๋ณต์์ w๊ฐ h๋ณด๋ค ํฐ ์ง์ฌ๊ฐํ๋ค์ด ๋ฆฌ์คํธ์ ๋ด๊ธฐ๊ฒ ๋๋ค.
ํ์ง๋ง ๋ฆฌ์คํธ์ ๋ด๊ธด ์ํ๋ ํ์ฌ ๋ฌธ์ ์กฐ๊ฑด์ ์ง์ฌ๊ฐํ ํฌ๊ธฐ ์์ผ๋ก ์ ๋ ฌ๋ ๊ฒ ์๋๋ค.
๋ฌธ์ ์กฐ๊ฑด์ ๋ง๊ฒ ์ ๋ ฌํด ์ค์ผ ํ๋ค.
์ฐ์ ์์๊ฐ ๋ ๋ฎ์ ๋์ด ์์ผ๋ก ์ ๋ ฌ์ ํด์ค ๋ค์์ ์ฐ์ ์์๊ฐ ๋์ ๋๊ฐ์ ๊ธธ์ด ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ํด์ค๋ค.
allSquare.sortBy { it[0] }
allSquare.sortBy { it[0] * it[0] + it[1] * it[1] }
์ด์ allSquare์๋ ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๋ ์ง์ฌ๊ฐํ๋ค์ด ์์ ๊ฒ์์ ํฐ ์์๋๋ก ์ ๋ ฌ๋์ด ๋ค์ด๊ฐ๋ค.
์ด ๋ฆฌ์คํธ์์ ์ ๋ ฅ๊ฐ์ด ๋ค์ด ์๋ ๋ฆฌ์คํธ index์ ๋ค์ ๊ฐ์ด ํฐ ์ง์ฌ๊ฐํ ์ค ์ ์ผ ์์ ์ง์ฌ๊ฐํ์ด ๋ ๊ฒ์ด๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val allSquare = mutableListOf<List<Int>>()
// ๋๋น๊ฐ ๋์ด๋ณด๋ค ์ปค์ผ ํจ.
for (h in 1 .. 150) {
for (w in h .. 150) {
if (h == w) continue
allSquare.add(listOf(h, w))
}
}
allSquare.sortBy { it[0] }
allSquare.sortBy { it[0] * it[0] + it[1] * it[1] }
while (true) {
val square = readLine().split(" ").map { it.toInt() }
if (square == listOf(0, 0)) break
val index = allSquare.indexOf(square)
println(allSquare[index + 1].joinToString(" "))
}
}
๋ฌธ์ ํ์ด
allSquare์ 1๋ถํฐ 150๊น์ง์ ์ง์ฌ๊ฐํ๋ค์ ๋ชจ๋ ๋ชจ์์ ๋ฌธ์ ์กฐ๊ฑด์ ๋ง๊ฒ ์ ๋ ฌํด ์ค๋ค.
์ ๋ ฅ๊ฐ์ด 0 0์ด ๋ค์ด์ฌ ๋๊น์ง ๋ฐ๋ณตํ๋ค.
allSquare์์ ์ ๋ ฅ๊ฐ๊ณผ ๋์ผํ ๊ฐ์ด ๋ค์ด ์๋ index๋ฅผ ์ฐพ์ ์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์ฐพ์ index์ ๋ค์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
์ธ๋ฐ์์ด ํจ์จ์ ์ด๊ฒ ํ๋ ค๋ค๊ฐ ์๊ฐ๋ญ๋น๋ง ํ ๋ฌธ์ ์ด๋ค.
๋ฌธ์ ์ ํ์ด ์์์ ๋จ์ํ๊ฒ ๋ฌด์ง์ฑ ์ ์ฒด ํ์์ด ๊ฐ๋ฅํ ๋ฌธ์ ์ด๋ค.
์ ์ฒด ํ์์ด ํ์คํ ์ฝ๊ฒ ๊ตฌํํ ์ ์์ง๋ง ๋ฌธ์ ๋ฒ์๊ฐ ์์ ๋๋ง ์ฌ์ฉํ๋๋ก ํ์.
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S1] ๋ฐฑ์ค 6064๋ฒ ์นด์ ๋ฌ๋ ฅ (0) | 2024.08.11 |
---|---|
[Kotlin, S3] ๋ฐฑ์ค 31883๋ฒ FA์์ ์ง (0) | 2024.08.09 |
[Kotlin, S5] ๋ฐฑ์ค 1340๋ฒ ์ฐ๋ ์งํ๋ฐ (0) | 2024.08.08 |
[Kotlin, S1] ๋ฐฑ์ค 5525๋ฒ IOIOI (0) | 2024.08.06 |
[Kotlin, S1] ๋ฐฑ์ค 1389๋ฒ ์ผ๋น ๋ฒ ์ด์ปจ์ 6๋จ๊ณ ๋ฒ์น (0) | 2024.08.05 |