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

[Kotlin, S5] ๋ฐฑ์ค€ 30923๋ฒˆ ํฌ๋ƒ‘๊ณผ 3D ํ”„๋ฆฐํ„ฐ

by immgga 2024. 8. 1.

์ถœ์ฒ˜: unsplash.com

 

ํฌ๋ƒ‘๊ณผ 3D ํ”„๋ฆฐํ„ฐ(30923๋ฒˆ)

Silver 5

#์ˆ˜ํ•™ #๊ธฐํ•˜ํ•™

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

๋„ˆ๋น„์™€ ํญ(๊ฐ€๋กœ์™€ ์„ธ๋กœ)์ด 1์ด๊ณ  ๋†’์ด๊ฐ€ h์ธ ๊ฒน์ณ ์žˆ๋Š” ์ž…์ฒด ๋„ํ˜•์˜ ๊ฒ‰๋„“์ด๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋„ˆ๋น„์™€ ํญ์˜ ๋„“์ด๊ฐ€ 1 ๊ณ ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ƒฅ ์ „์ฒด ๊ฒ‰๋„“์ด์— ๊ฒน์น˜๋Š” ๋ถ€๋ถ„์„ ๋นผ๋Š” ๋ฐฉ๋ฒ•์„ ์“ธ ์ˆ˜๋„ ์žˆ๊ณ , ๋„ํ˜•์˜ ๊ฐ ๋„“์ด๋ฅผ ์ผ์ผ์ด ๊ตฌํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

๋‚˜๋Š” ๋„ํ˜•์˜ ๊ฐ ๋„“์ด๋ฅผ ์ผ์ผ์ด ๊ตฌํ•ด ๋”ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ–ˆ๋‹ค.

๋ฌธ์ œ์˜ ์˜ˆ์ œ 1์˜ ๋„ํ˜• ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด,

์‚ฌ์ง„ 1-1

์ž…๋ ฅ๋ฐ›์€ ์ˆœ์„œ๋Œ€๋กœ ์ž…์ฒด ๋„ํ˜•์ด ์ฃผ์–ด์ง„๋‹ค.

์ž…์ฒด ๋„ํ˜•์˜ ๋„ˆ๋น„์™€ ํญ์ด 1์ด๋ผ์„œ ์˜†๋ฉด์˜ ๋„“์ด๋Š” ๊ฐ ๋„ํ˜•์˜ ๋†’์ด์™€ ๊ฐ™๋‹ค.

๊ฒ‰๋„“์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์‚ฌ๊ฐํ˜•๋“ค์˜ ๋„“์ด์˜ ํ•ฉ์„ ๋ชจ๋‘ ๊ตฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์‚ฌ์ง„ 1-1์˜ ๊ฒ‰๋„“์ด๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š”(์ •๋ฉด์„ ์•ž์ด๋ผ๊ณ  ์นญํ•˜๊ฒ ๋‹ค)

<๊ณ„์‚ฐ์‹ 1>

๋„ํ˜•์˜ ์•ž๋ฉด๊ณผ ๋’ท๋ฉด์˜ ๋„“์ด: hList.sum() * 2

 

<๊ณ„์‚ฐ์‹ 2>

๋„ํ˜•์˜ ์œ—๋ฉด๊ณผ ์•„๋žซ๋ฉด์˜ ๋„“์ด: N * 2

 

<๊ณ„์‚ฐ์‹ 3>

๋„ํ˜•์˜ ์˜ค๋ฅธ์ชฝ๋ฉด๊ณผ ์™ผ์ชฝ๋ฉด์˜ ๋„“์ด: hList.first() + hList.last()

 

์œ„ 3๊ฐ€์ง€๋ฅผ ๊ตฌํ•˜๊ณ  ๋‚˜๋ฉด ๋„ํ˜• ์‚ฌ์ด์˜ ๋„“์ด๋งŒ ๋‚จ๋Š”๋ฐ,

<๊ณ„์‚ฐ์‹ 4>

์ด ๋„“์ด๋Š” ๊ฒน์ณ ์žˆ๋Š” ๋„ํ˜•๋“ค์˜ ๋†’์ด์˜ ์ฐจ์— ์ ˆ๋Œ“๊ฐ’๋งŒํผ ๋”ํ•ด ์ค€๋‹ค: abs(hList[i] - hList[i+1])

1, 2, 3, 4๋ฅผ ๋ชจ๋‘ ๋”ํ•ด ์ฃผ๋ฉด ์ •๋‹ต์ด ๋‚˜์˜จ๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ์ฝ”๋“œ

๋”๋ณด๊ธฐ
import java.io.BufferedReader
import java.io.InputStreamReader
import kotlin.math.abs

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val cnt = readLine().toInt()
    val height = readLine().split(" ").map { it.toLong() }
    var surfaceArea: Long = height.sum() * 2 + cnt * 2 + height.first() + height.last()

    for (i in 0 until cnt - 1) {
        surfaceArea += abs(height[i] - height[i + 1])
    }

    println(surfaceArea)
}

 

๋ฌธ์ œ ํ’€์ด

๋„ํ˜•์˜ ๊ฐœ์ˆ˜์™€ ๋„ํ˜•์˜ ๋†’์ด๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

๋„ํ˜•์˜ ๊ฒ‰๋„“์ด์— ์œ„์˜ ๊ณ„์‚ฐ์‹ 1, 2, 3์„ ๋”ํ•ด ์ค€๋‹ค.

๋„ํ˜•์˜ ๊ฐœ์ˆ˜ - 1๋งŒํผ ๊ฒน์ณ ์žˆ๋Š” ๋„ํ˜• ๊ฐ„์˜ ๋„“์ด๋„ ๋”ํ•ด ์ค€๋‹ค.

 

 

๋ฌธ์ œ ํ•ด๊ฒฐ ๊ณผ์ •

๊ตฌํ˜„์€ ์‰ฌ์› ๋‹ค.

๋„ˆ๋น„์™€ ํญ์„ ๊ณ ๋ คํ•˜์ง€ ์•Š์•„๋„ ๋ผ์„œ ์ฒด๊ฐ ๋‚œ์ด๋„๊ฐ€ ๋” ๋‚ฎ์•˜๋‹ค.

์ œํ•œ์ด ๋„ํ˜•์˜ ๊ฐœ์ˆ˜๊ฐ€ 32768์ด๊ณ , ๋†’์ด ์ œํ•œ๋„ 32768์ด๋‹ค. ๊ทธ๋ž˜์„œ ๋„ํ˜•์˜ ๊ฐœ์ˆ˜๊ฐ€ 32768๊ฐœ์ด๊ณ , ๋ชจ๋“  ๋„ํ˜•์˜ ๋„“์ด๊ฐ€ 32768์ธ ๊ฒฝ์šฐ์—๋Š” int์˜ ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•ด์„œ ์˜ค๋‹ต์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.

1๋ฒˆ ๊ณต์‹์ธ 32,768 * 32,768 * 2 = 2,147,483,648์ด int ๋ฒ”์œ„์˜ ํ•œ๋„์ด๋‹ค.

์ด ๊ฐ’์— 2, 3, 4๋ฒˆ ๊ณต์‹์„ ์ ์šฉํ•˜๋ฉด int ๋ฒ”์œ„๊ฐ€ ๋„˜์–ด๊ฐ€๊ฒŒ ๋œ๋‹ค.

๊ทธ๋Ÿผ 78%์—์„œ ์˜ค๋‹ต์ด ๋‚˜์˜ฌ ๊ฒƒ์ด๋‹ค.

728x90