BuNa_
IT Story
BuNa_
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (117)
    • CS (14)
      • ์šด์˜์ฒด์ œ (8)
      • ๋„คํŠธ์›Œํฌ (0)
      • Design Pattern (1)
      • OOP (4)
    • ๋Œ€์™ธํ™œ๋™ (24)
      • ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค (14)
      • DND ๋™์•„๋ฆฌ (4)
      • UMC ๋™์•„๋ฆฌ (5)
      • ํ•ด์ปคํ†ค (1)
    • Android (29)
      • MVVM (2)
      • ์Šคํ„ฐ๋”” (11)
      • Compose (3)
      • Unit Test (1)
    • Project (5)
      • ์–ด๋”ฐ์„ธ์›Œ (5)
      • DnD ๊ณผ์™ธ ์„œ๋น„์Šค (0)
    • Programming (11)
      • Kotlin (4)
      • ํŒŒ์ด์ฌ (7)
    • Git (1)
    • ์ธ๊ณต์ง€๋Šฅ (22)
    • ๋ฐฑ์ค€ (8)
    • ๊ธฐํƒ€ (3)
      • IntelliJ (1)
      • ์ผ์ƒ (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์šด์˜์ฒด์ œ
  • ์„ ํ˜•ํšŒ๊ท€
  • ์šฐํ…Œ์ฝ”
  • RecyclerView
  • ์šฐํ…Œ์ฝ” ํ”„๋ฆฌ์ฝ”์Šค
  • MVVM
  • k-means++
  • ์™ธ๋ถ€ ๋‹จํŽธํ™”
  • ์›์‹œ๊ฐ’ ํฌ์žฅ
  • ์šฐํ…Œ์ฝ” 5๊ธฐ
  • ์ปด๊ณต์„ ๋ฐฐ
  • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • Compose
  • ๊ฐ์ฒด์ง€ํ–ฅ ์ƒํ™œ์ฒด์กฐ
  • ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค
  • Ai
  • Baekjoon
  • ๋ฐฑ์ค€
  • ์ธ๊ณต์ง€๋Šฅ ๋ถ„๋ฅ˜
  • ์–ด๋”ฐ์„ธ์›Œ
  • ํŒŒ์ด์ฌ
  • ๋”ฅ๋Ÿฌ๋‹
  • External fragmentation
  • ViewModel
  • K-means
  • UMC
  • ์…€๋ ˆ๋‹ˆ์›€
  • Android
  • ์ธ๊ณต์ง€๋Šฅ
  • ์•ˆ๋“œ๋กœ์ด๋“œ

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
BuNa_

IT Story

[๋ฐฑ์ค€ - Python] 2579๋ฒˆ : ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ
๋ฐฑ์ค€

[๋ฐฑ์ค€ - Python] 2579๋ฒˆ : ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ

2022. 9. 28. 14:41

 

 

๐ŸŒฑ   ๋ฌธ์ œ

 

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

 

2579๋ฒˆ: ๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ

๊ณ„๋‹จ ์˜ค๋ฅด๊ธฐ ๊ฒŒ์ž„์€ ๊ณ„๋‹จ ์•„๋ž˜ ์‹œ์ž‘์ ๋ถ€ํ„ฐ ๊ณ„๋‹จ ๊ผญ๋Œ€๊ธฐ์— ์œ„์น˜ํ•œ ๋„์ฐฉ์ ๊นŒ์ง€ ๊ฐ€๋Š” ๊ฒŒ์ž„์ด๋‹ค. <๊ทธ๋ฆผ 1>๊ณผ ๊ฐ™์ด ๊ฐ๊ฐ์˜ ๊ณ„๋‹จ์—๋Š” ์ผ์ •ํ•œ ์ ์ˆ˜๊ฐ€ ์“ฐ์—ฌ ์žˆ๋Š”๋ฐ ๊ณ„๋‹จ์„ ๋ฐŸ์œผ๋ฉด ๊ทธ ๊ณ„๋‹จ์— ์“ฐ์—ฌ ์žˆ๋Š” ์ 

www.acmicpc.net

 

๐Ÿ’ก   ์„ค๋ช…

ํ•„์ž๋Š” ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ BFS๋กœ ํ•ด๊ฒฐํ•˜๋ ค ํ–ˆ์œผ๋‚˜ ์ฑ„์  7% ์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์•„๋ฌด๋ฆฌ n์ด 300์ด๋ผ๊ณ  ํ•ด๋„ ์ฃผ์–ด์ง„ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ 128MB์ธ ์ƒํ™ฉ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์š”๊ตฌํ•˜๋Š” BFS๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ๋ณด์˜€์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ฐฉ๋ฒ•์œผ๋กœ ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ(DP)๋กœ ์ ‘๊ทผ์„ ์‹œ๋„ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

Memoization ๊ธฐ๋ฒ•์„ ํ†ตํ•ด ์ด์ „์— ๊ตฌํ•œ ์ตœ์ ๊ฐ’(ํ•ด๋‹น ์ธต๊นŒ์ง€ ๊ตฌํ•œ ์ตœ๋Œ€ ์Šค์ฝ”์–ด)์„ dp ๋ฐฐ์—ด์— ๊ธฐ๋กํ•ด๋‘๊ณ  ํ•œ ์ธต์”ฉ ๋†’์—ฌ๊ฐ€๋ฉฐ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค.

 

์šฐ์„  ์ ํ™”์‹์„ ์„ธ์›Œ์ฃผ๊ธฐ ์œ„ํ•ด ๋ฌธ์ œ์—์„œ ์ œ์‹œํ•˜๋Š” ์กฐ๊ฑด์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

  1. ๊ณ„๋‹จ์€ ํ•œ ๋ฒˆ์— ํ•œ ์ธต ๋˜๋Š” ๋‘ ์ธต ์ด๋™ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์ธต์„ ์„ธ ๋ฒˆ ์—ฐ์†ํ•˜์—ฌ ์ด๋™ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (4์ธต -> 5์ธต -> 6์ธต ์ด๋™๊ณผ ๊ฐ™์€ ์›€์ง์ž„์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ์˜๋ฏธ.)
  3. ๋„์ฐฉํ•˜๊ณ ์ž ํ•˜๋Š” ์ธต์„ ๋ฐŸ์•„์•ผ๋งŒ ํ•ฉ๋‹ˆ๋‹ค.

 

'์—ฐ์†์œผ๋กœ 3๊ฐœ์˜ ์ธต์„ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•'

 

ํ•ด๋‹น ์กฐ๊ฑด์„ ๊ทธ๋ฆผ์œผ๋กœ ๋„์‹ํ™” ํ•ด๋ณด๋ฉด ํฌ๊ฒŒ ํŒŒ๋ž€์ƒ‰ ๊ฒฝ๋กœ์™€ ์ดˆ๋ก์ƒ‰ ๊ฒฝ๋กœ 2๊ฐ€์ง€๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ์„ค๊ณ„ํ•˜๋ฉด ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฉด์„œ ๋ชจ๋“  ์ธต์„ ํ™•์ธํ•ด๋ณด๋ฉฐ ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŒŒ๋ž€์ƒ‰ ๊ฒฝ๋กœ๋Š” 3๊ฐœ์˜ ์ธต์„ ์—ฐ์†ํ•ด์„œ ๊ฑฐ์น˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์• ์ดˆ์— 2์นธ์”ฉ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ
  • ์ดˆ๋ก์ƒ‰ ๊ฒฝ๋กœ๋Š” 3๊ฐœ์˜ ์ธต์„ ์—ฐ์†ํ•ด์„œ ๊ฑฐ์น˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ๋‘์นธ ์ด๋™ํ•˜๊ณ  ํ•œ ์นธ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ

 

์ ํ™”์‹์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • DP[i] = max(arr[i] + dp[i-2], arr[i] + arr[i-1] + dp[i-3])

 

ํ’€์ด๋ฅผ ์œ„ํ•ด์„œ ์šฐ์„  Base๊ฐ€ ๋˜๋Š” 1์ธต, 2์ธต, 3์ธต์— ๋Œ€ํ•œ ์ตœ๋Œ€ ๊ฐ’์„ ๊ตฌํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  4์ธต๋ถ€ํ„ฐ n์ธต๊นŒ์ง€ ์œ„ ์ ํ™”์‹์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋„์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

โœ๏ธ   ์†Œ์Šค์ฝ”๋“œ

n = int(input())

arr = [0] + [int(input()) for _ in range(n)]
dp = [0] * (n+1)

if n == 1: print(arr[1])
elif n == 2: print(arr[1] + arr[2])
else: 
    dp[1] = arr[1]
    dp[2] = arr[1] + arr[2]
    dp[3] = max(arr[1] + arr[3], arr[2] + arr[3])

    # ๊ณ„์† 2์นธ์”ฉ or 1์นธ + 2์นธ ๋ฐ˜๋ณต
    for i in range(4, n+1):
        dp[i] = max(arr[i] + dp[i-2], arr[i] + arr[i-1] + dp[i-3])

    print(dp[n])

 

 

 

github : https://github.com/tmdgh1592

 

tmdgh1592 - Overview

๋А๋ฆฌ๋”๋ผ๋„ ์ฒœ์ฒœํžˆ..!! ๐Ÿ˜. tmdgh1592 has 21 repositories available. Follow their code on GitHub.

github.com

 

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋ฐฑ์ค€ - Python] 1697๋ฒˆ : ์ˆจ๋ฐ”๊ผญ์งˆ  (0) 2022.09.27
[๋ฐฑ์ค€ - Python] 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ  (1) 2022.09.20
[๋ฐฑ์ค€ - Python] 2671๋ฒˆ : ์ž ์ˆ˜ํ•จ์‹๋ณ„  (0) 2022.09.14
[๋ฐฑ์ค€/ํŒŒ์ด์ฌ] 1004๋ฒˆ ๋ฌธ์ œ '์–ด๋ฆฐ ์™•์ž'  (14) 2021.06.11
[๋ฐฑ์ค€/ํŒŒ์ด์ฌ] 1003๋ฒˆ ๋ฌธ์ œ 'ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜'  (16) 2021.06.10
    '๋ฐฑ์ค€' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [๋ฐฑ์ค€ - Python] 1697๋ฒˆ : ์ˆจ๋ฐ”๊ผญ์งˆ
    • [๋ฐฑ์ค€ - Python] 2839๋ฒˆ : ์„คํƒ• ๋ฐฐ๋‹ฌ
    • [๋ฐฑ์ค€ - Python] 2671๋ฒˆ : ์ž ์ˆ˜ํ•จ์‹๋ณ„
    • [๋ฐฑ์ค€/ํŒŒ์ด์ฌ] 1004๋ฒˆ ๋ฌธ์ œ '์–ด๋ฆฐ ์™•์ž'
    BuNa_
    BuNa_
    ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ํ–ฅํ•ด ๋‹ฌ๋ฆฌ๊ณ  ์žˆ๋Š” ๊ณต๋Œ€์ƒ์ž…๋‹ˆ๋‹ค! ๐Ÿง‘ Android, Kotlin, Java, Python ๋“ฑ ํ•™์Šตํ•˜๊ณ  ์žˆ๋Š” ๋‚ด์šฉ๊ณผ ํ”„๋กœ์ ํŠธ๋ฅผ ์ฃผ๋กœ ์—…๋กœ๋“œํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์ ๊ณผ ์กฐ์–ธ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜์ž…๋‹ˆ๋‹ค!๐Ÿ˜Š github : https://github.com/tmdgh1592

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”