๋๋ฌด ์๋ฅด๊ธฐ(14247๋ฒ)
Silver 2
#๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ #์ ๋ ฌ
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
n์ผ ๋์ ๋๋ฌด๋ฅผ ์๋ผ์ ์ป์ ์ ์๋ ๋๋ฌด์ ์ต๋ ์์ ๊ตฌํ๋ค.
์ฒซ๋ ์ ๋๋ฌด๋ n๊ฐ์ ๋๋ฌด๊ฐ ๊ฐ๊ฐ h์ ๋์ด๋ฅผ ์ด๋ฃจ๊ณ ์๊ณ ๋ ์ด ์ง๋ ๋๋ง๋ค hโฑ ์ ํด๋นํ๋ aโฑ ๋งํผ ๋๋ฌด๊ฐ ์๋ผ๊ฒ ๋๋ค.
๋ฌธ์ ๋ฅผ ๋ณด๋ฉด ๋ ๋ง๋ค ์๋ผ๋ ๋๋ฌด์ ๋์ด๊ฐ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๋งค์ผ ์ ์ผ ๋์ด๊ฐ ๋์ ๋๋ฌด๋ฅผ ๊ณ ๋ฅด๋ ๊ฒ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ค๊ณ ์๊ฐํ๊ธฐ ์ฝ๋ค.
ํ์ง๋ง ๊ทธ ๋ฐฉ๋ฒ์ ์ต์ ํด๊ฐ ์๋๋ค.
์ฐ๋ฆฌ๋ ์ ์ผ ๋ ์๋ผ๋ ๋๋ฌด๋ถํฐ ์์ํด์ ์ ์ผ ์ ์๋ผ๋ ๋๋ฌด ์์๋๋ก ๋๋ฌด๋ฅผ ๊ณจ๋ผ์ผ ํ๋ค.
๋๋ฌด๊ฐ ์ ์๋์๋ก ๋์ค ๊ฐ์๋ก ๋๋ฌด์ ๋์ด๊ฐ ๋งค์ฐ ์ปค์ง๊ธฐ ๋๋ฌธ์ ๋งค์ผ ์ ์ผ ๋์ด๊ฐ ๋์ ๋๋ฌด๋ฅผ ๊ณ ๋ฅด๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ด ๋๋ฌด๋ฅผ ๊ณ ๋ฅผ ์ ์๋ฐ ๋๋ค.
์ด์ ์ด ์์ด๋์ด๋ฅผ ์ด๋ป๊ฒ ๊ตฌํํด์ผ ํ๋๊ฐ?
๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ ๊ฐ์ฅ ๋ ์๋ผ๋ ๋๋ฌด๋ฅผ ์๋ฅธ ํ, ๋๋จธ์ง ๋๋ฌด์ ๋์ด h์ aโฑ ๋งํผ ๋ํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ ์ ์๋ค.
์์ ์์ด๋์ด๋ฅผ ์ฝ๋๋ก ๊ตฌํํด์ ์ ์ถํ ๊ฒฐ๊ณผ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val bf = BufferedReader(InputStreamReader(System.`in`))
val n = bf.readLine().toInt()
val h = bf.readLine().split(" ").map { it.toInt() }.toIntArray()
val a = bf.readLine().split(" ").mapIndexed { i, data -> Pair(i, data.toInt()) }.toMutableList()
a.sortBy { it.second }
var answer: Long = 0
for (i in 0 until n) {
answer += h[a[i].first]
for (j in a.indices) {
h[a[j].first] = h[a[j].first] + a[j].second
}
}
println(answer)
}
๋ญ๊ฐ ์๊ฐ ์ด๊ณผ๊ฐ ๋ ๊ฒ ๊ฐ์์ง๋ง ์์๋๋ก ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.
๋ด ์๊ฐ์๋ ๋๋ฌด๋ฅผ ์๋ฅธ ์ดํ์ ๋๋จธ์ง ๋๋ฌด๋ฅผ ๋ํ๋ ๊ณผ์ ์ด ๋๋ฌด ๋ฐ๋ณต์ ์ด๊ณ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ด๋ผ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋จํ๋ค.
๊ทธ๋ฌ๋ฉด ์ด๊ฑธ ์ด๋ป๊ฒ ์ค์ด๋๊ฐ?
๋๋ฌด๊ฐ ์๋ฆฌ๋ ์์๋ฅผ ๊ณ ๋ คํ๋ฉด ๋๋ฌด๊ฐ ์ด ๋ช ๋ฒ ์๋ผ๋์ง ์ ์ ์๋๋ฐ, ์ด์ aโฑ ๋ฅผ ๊ณฑํ๋ฉด ๋ฐ๋ณต ์์ ์์ด ์ํ์ ์ผ๋ก ์๋ผ์ผ ํ๋ ๋ ์ ๋๋ฌด์ ๋์ด๋ฅผ ๊ตฌํ ์ ์๊ฒ ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() {
val bf = BufferedReader(InputStreamReader(System.`in`))
val n = bf.readLine().toInt()
val h = bf.readLine().split(" ").map { it.toInt() }.toIntArray()
val a = bf.readLine().split(" ").mapIndexed { i, data -> Pair(i, data.toInt()) }.toMutableList()
a.sortBy { it.second }
var answer: Long = 0
for (i in a.indices) {
// i: ๊ฒฝ๊ณผ ๋ ์ง
val index = a[i].first
h[index] += (a[i].second * i)
answer += h[index]
}
println(answer)
}
๋ฌธ์ ํ์ด
์ฐ์ a๋ฅผ Pair๋ฅผ ์ด์ฉํด index, data ํ์์ผ๋ก ๊ฐ์ ์ ์ฅํด ์ฃผ์๋ค.
index๋ h์ ๋์ํ๋ index๋ฅผ ํ์ํ๊ธฐ ์ํด ์ฌ์ฉํ๋ค.
data๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ์งํํด ์๋ฆฌ๋ ์์๋ฅผ ์ ์ํ๋ค.
ํต์ฌ ๋ก์ง์ ์๋ ๊ณผ์ ๋ง ์ค๋ช ํด ์ฃผ๊ฒ ๋ค.
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ ์ ๋ ฅ ์์ ๊ฐ ์์ ๋
5
1 3 2 4 6
2 7 3 4 1
a์์ ๊ฐ์ฅ ์์ ์๋ 1์ด๊ณ ๊ฐ์ฅ ํฐ ์๋ 7์ด๋ค.
์์ด๋์ด์ ๋ฐ๋ฅด๋ฉด, ๊ฐ์ฅ ๋๋ฆฌ๊ฒ ์๋ผ๋ 1์ ๋์ํ๋ h์ธ 6์ธ ๋๋ฌด๋ฅผ ์์์ผ๋ก ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ์๋ผ๋ 7์ ๋์ํ๋ h๊ฐ 3์ธ ๋๋ฌด ์์๋๋ก ๋๋ฌด๋ฅผ ์๋ฅด๊ฒ ๋๋ค.
์ฒซ๋ ์๋ ๋๋ฌด๊ฐ ์๋ผ์ง ์๊ธฐ ๋๋ฌธ์ aโฑ ๋ ์ฌ์ฉ๋์ง ์๊ณ ๋ ๋ฒ์งธ ๋ ๋ถํฐ ์ฌ์ฉํ๋ค.
๋ ๋ฒ์งธ ๋ ์ 1๋ฒ ์๋ผ๊ฒ ๋๊ณ ์ธ ๋ฒ์งธ ๋ ์๋ 2๋ฒ ์๋ผ๊ฒ ๋๋ค.
์ญ ์งํํ๋ฉด n๋ฒ์งธ ๋ ์๋ n - 1๋ฒ ๋๋ฌด๊ฐ ์ฑ์ฅํ๋ค.
์ด๋ฌํ ์๋ฆฌ๋ฅผ ํ์ ํด, hโฑ + aโฑ * ๊ฒฝ๊ณผ ๋ ์ง์ ์์ผ๋ก ์๋ฅผ ๋์ ๋๋ฌด์ ๋์ด๋ฅผ ๊ตฌํ ์ ์๋ค.
h๊ฐ 3์ธ ๋๋ฌด๊ฐ ์ ์ผ ๋ง์ง๋ง ๋ ์ธ ๋ค์ฏ ๋ฒ์งธ ๋ ์ ์๋ฆฌ๋ ๊ฒ์ ์๊ฐํ๋ค๋ฉด 4๋ฒ์ ์ฑ์ฅ์ด ์๊ฒ ๋๊ธฐ ๋๋ฌธ์
3 + 7 * 4 = 31์ด ๋๊ฒ ๋๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
์ฒ์์๋ ๋ ๋ง๋ค ๊ฐ์ฅ ๋์ด๊ฐ ๋์ ๋๋ฌด๋ฅผ ์๋ฅด๋ ๊ฒ์ผ๋ก ์๊ฐํ๊ธฐ ์ฝ๋ค๊ณ ์์ ์ธ๊ธํ์๋ค.
๋ด๊ฐ ์ค์ ๋ก ๊ทธ ์์ด๋์ด๋ก ์ ๋ ฅ ์์ ๊ฒ์ฆ์ ์งํํ๋๋ฐ ์ ๋ต์ด ๋ค๋ฅด๊ฒ ๋์๋ค.
๊ฐ์ฅ ๋ ์๋ผ๋ ๋๋ฌด๋ถํฐ ์๋ฅด๋ผ๋ ์์ด๋์ด๋ ๊ฒ์ํ์ ํตํด ํํธ๋ฅผ ์ป๊ฒ ๋์๊ณ , ์ฝ๋๋ก ๊ตฌํํ๋ ๊ฒ์ ํฌ๊ฒ ์ด๋ ต์ง๋ ์์๋ฐ
์๊ฐ ์ด๊ณผ๋ฅผ ๊ณ ๋ คํด ์์ผ๋ก ๋๋ฌด์ ๋์ด๋ฅผ ๊ตฌํด์ฃผ์๋ค.
๊ฐ์ ๋๋ฌด๋ฅผ ์ฌ๋ฌ ๋ฒ ์๋ฅด๋ฉด ๋นํจ์จ์ ์ด๋ผ๋ ๊ฒ๊ณผ, ์๋ผ๋ ์๋๊ฐ ๋น ๋ฅธ ๋๋ฌด๋ฅผ ๋ฆ๊ฒ ์๋ฅด๋ ๊ฒ์ด ์ด๋์ธ ๊ฒ์ ์๊ฒ ๋๋ฉด ๊ตฌํํ๋ ๊ฒ ์ด๋ ต์ง๋ ์์ ๊ฒ์ด๋ค.
์ฒด๊ฐ ๋์ด๋: Silver 2
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S1] ๋ฐฑ์ค 2468๋ฒ ์์ ์์ญ (0) | 2025.01.19 |
---|---|
[Kotlin, S1] ๋ฐฑ์ค 2205๋ฒ ์ ์ธ ์ถ ๋ง๋ค๊ธฐ (0) | 2025.01.07 |
[Kotlin, S2] ๋ฐฑ์ค 1780๋ฒ ์ข ์ด์ ๊ฐ์ (0) | 2024.12.18 |
[Kotlin, S3] ๋ฐฑ์ค 32186๋ฒ ์ญ์ ๋ด ์ด์ธ๊ณ ์์ด์ ์๋ชป๋๋ค (0) | 2024.12.18 |
[Kotlin, S2] ๋ฐฑ์ค 26007๋ฒ Codepowers (0) | 2024.12.03 |