๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ฏ | ๋ฐฑ์ค€/๐Ÿ™‚ | Silver

[Kotlin, S2] ๋ฐฑ์ค€ 14247๋ฒˆ ๋‚˜๋ฌด ์ž๋ฅด๊ธฐ

by immgga 2025. 1. 14.
๋ฐ˜์‘ํ˜•

์ถœ์ฒ˜: unsplash.com

 

๋‚˜๋ฌด ์ž๋ฅด๊ธฐ(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

728x90
๋ฐ˜์‘ํ˜•