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

[Kotlin, S2] ๋ฐฑ์ค€ 1912๋ฒˆ ์—ฐ์†ํ•ฉ

by immgga 2024. 8. 26.

์ถœ์ฒ˜: unsplash.com

 

์—ฐ์†ํ•ฉ(1912๋ฒˆ)

Silver 2

#๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ

https://www.acmicpc.net/problem/1912

 

๋ฌธ์ œ ๋‚ด์šฉ

 

 

๋ฌธ์ œ ์ ‘๊ทผ

์ •์ˆ˜๋“ค์ด ์ฃผ์–ด์ง€๋ฉด, ์—ฐ์†๋œ ์ •์ˆ˜์˜ ํ•ฉ ์ค‘์˜ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„์„œ ์ถœ๋ ฅํ•œ๋‹ค.

์‹œ๊ฐ„์ œํ•œ์ด 1์ดˆ์ด๊ณ , ์ •์ˆ˜๋Š” 10๋งŒ ๊ฐœ๊นŒ์ง€ ๋“ค์–ด์˜ค๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๊ฐ•์ œ๋œ๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ’€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ?

 

์ž…๋ ฅ ์˜ˆ์ œ 1์„ ์˜ˆ๋กœ ๋“ค์–ด ๋ณด๊ฒ ๋‹ค.

10
10 -4 3 1 5 6 -35 12 21 -1

์ •์ˆ˜๋ฅผ ํ•˜๋‚˜์”ฉ ๋ณด๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ์ฐพ์•„๋ณด์ž.

 

์ฒซ ๋ฒˆ์งธ ์ˆ˜๋Š” 10์ด๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 10์ด๋‹ค.

๋‘ ๋ฒˆ์งธ ์ˆ˜๋Š” -4์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 6์ด๋‹ค. 6๊ณผ -4์ค‘์— 6์ด ๋” ํฌ๋‹ค.

์„ธ ๋ฒˆ์งธ ์ˆ˜๋Š” 3์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 9์ด๋‹ค. 9์™€ 3์ค‘์— 9๊ฐ€ ๋” ํฌ๋‹ค.

๋„ค ๋ฒˆ์งธ ์ˆ˜๋Š” 1์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 10์ด๋‹ค. 10๊ณผ 1์ค‘์— 10์ด ๋” ํฌ๋‹ค.

๋‹ค์„ฏ ๋ฒˆ์งธ ์ˆ˜๋Š” 5์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 15๋‹ค. 15๊ณผ 5์ค‘์— 15๊ฐ€ ๋” ํฌ๋‹ค.

์—ฌ์„ฏ ๋ฒˆ์งธ ์ˆ˜๋Š” 6์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 21์ด๋‹ค. 21๊ณผ 6์ค‘์— 21์ด ๋” ํฌ๋‹ค.

์ผ๊ณฑ ๋ฒˆ์งธ ์ˆ˜๋Š” -35๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ -14์ด๋‹ค. -14์™€ -35์ค‘์— -14๊ฐ€ ๋” ํฌ๋‹ค.

์—ฌ๋Ÿ ๋ฒˆ์งธ ์ˆ˜๋Š” 12์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ -2์ด๋‹ค. -2์™€ 12์ค‘ 12๊ฐ€ ๋” ํฌ๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์„ 12๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค.

์•„ํ™‰ ๋ฒˆ์งธ ์ˆ˜๋Š” 21์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 33์ด๋‹ค. 33๊ณผ 21์ค‘ 33์ด ๋” ํฌ๋‹ค.

์—ด ๋ฒˆ์งธ ์ˆ˜๋Š” -1์ด๋‹ค. ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์€ 32์ด๋‹ค. 32์™€ -1์ค‘ 32๊ฐ€ ๋” ํฌ๋‹ค.

 

์ด 10๋ฒˆ์˜ ํƒ์ƒ‰ ๊ฒฐ๊ณผ์—์„œ ์ •๋‹ต์ด ์žˆ๋‹ค. ์ •๋‹ต์€ 33์ด๋‹ค.

์œ„์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋‹ต์„ ๊ตฌํ•˜๋ฉด ์ตœ๋Œ“๊ฐ’์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

๊ทธ ๋ฆฌ์ŠคํŠธ์—์„œ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

์ ํ™”์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑํ•œ๋‹ค.

max(res[i - 1] + numbers[i], numbers[i])

res๊ฐ€ ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ๋Œ“๊ฐ’์ด๊ณ , numbers๊ฐ€ ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜๋“ค์ผ ๋•Œ, ๋‘ ์ˆ˜์˜ ํ•ฉ์ด ์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ์ด๋‹ค.

์—ฐ์†๋œ ์ˆ˜์˜ ํ•ฉ๊ณผ ์ž…๋ ฅ ์ •์ˆ˜ ์ค‘ ๋” ํฐ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

 

 

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

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

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val numberCnt = readLine().toInt()
    val numbers = readLine().split(" ").map { it.toInt() }
    val res = Array(numberCnt) { 0 }
    res[0] = numbers[0]

    for (i in 1 until numbers.size) {
        res[i] = max(res[i - 1] + numbers[i], numbers[i])
    }

    println(res.max())
}

 

๋ฌธ์ œ ํ’€์ด

์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜๋“ค์˜ ์ตœ๋Œ“๊ฐ’์„ res์— ์ €์žฅํ•  ๊ฒƒ์ด๋‹ค. res์˜ ์ดˆ๊ธฐ ๊ฐ’์ธ 0๋ฒˆ์งธ ๊ฐ’์€ ์ž…๋ ฅ๋ฐ›์€ ์ •์ˆ˜๋“ค์˜ ์ฒซ ๋ฒˆ์งธ ์ •์ˆ˜๋กœ ์ง€์ •ํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด ์ค€๋‹ค.

 

 

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

ํ‰๋ฒ”ํ•œ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ.

์ผ๋‹จ ๋‚˜๋Š” ์ฒ˜์Œ์— ์ ํ™”์‹์ด ์ƒ๊ฐ์ด ์•ˆ ๋‚˜์„œ ๋ฌธ์ œ ๊ฒŒ์‹œํŒ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.

์–ธ์ œ์ฏค ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋งˆ์Šคํ„ฐํ•  ์ˆ˜ ์žˆ์„๊นŒ?

728x90