개발자 HOON
πŸ› HOON DEVLog
개발자 HOON
전체 방문자
였늘
μ–΄μ œ
  • 😎 전체 μΉ΄ν…Œκ³ λ¦¬ (137)
    • πŸ“ μ‹ μž… 인터뷰 μ€€λΉ„ (7)
    • πŸ¦” μ·¨μ—…μ€€λΉ„ 기둝 (7)
    • β˜• μžλ°” : JAVA (5)
    • 🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS (80)
    • 🌱 λ°±μ—”λ“œ : Backend (13)
    • πŸ§ͺ 컴퓨터과학 : CS (11)
    • πŸ—‚ λ°μ΄ν„°λ² μ΄μŠ€ : DB (1)
    • πŸƒ‍♂️ DEVLOG (8)
    • βš™οΈ Trouble Shooting (5)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • GitHub
  • Resume

곡지사항

인기 κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
개발자 HOON

πŸ› HOON DEVLog

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ„λ‘‘μ§ˆ (level4, python)
🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] λ„λ‘‘μ§ˆ (level4, python)

2022. 10. 14. 14:19

🏝 문제 μ„€λͺ…

 

도둑이 μ–΄λŠ λ§ˆμ„μ„ ν„Έ κ³„νšμ„ ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 λ§ˆμ„μ˜ λͺ¨λ“  집듀은 μ•„λž˜ κ·Έλ¦Όκ³Ό 같이 λ™κ·Έλž—κ²Œ λ°°μΉ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

 

 

각 집듀은 μ„œλ‘œ μΈμ ‘ν•œ μ§‘λ“€κ³Ό λ°©λ²”μž₯μΉ˜κ°€ μ—°κ²°λ˜μ–΄ 있기 λ•Œλ¬Έμ— μΈμ ‘ν•œ 두 집을 ν„Έλ©΄ 경보가 μšΈλ¦½λ‹ˆλ‹€.

각 집에 μžˆλŠ” 돈이 λ‹΄κΈ΄ λ°°μ—΄ moneyκ°€ μ£Όμ–΄μ§ˆ λ•Œ, 도둑이 ν›”μΉ  수 μžˆλŠ” 돈의 μ΅œλŒ“κ°’μ„ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜μ„Έμš”.


μ œν•œμ‚¬ν•­
  • 이 λ§ˆμ„μ— μžˆλŠ” 집은 3개 이상 1,000,000개 μ΄ν•˜μž…λ‹ˆλ‹€.
  • money λ°°μ—΄μ˜ 각 μ›μ†ŒλŠ” 0 이상 1,000 μ΄ν•˜μΈ μ •μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예
[1, 2, 3, 1] 4

🏝 풀이 μ½”λ“œ

def solution(money):
    answer = 0
    if len(money) == 1:
        return money.pop()

    size = len(money)
    # 1번 μ„ νƒν•˜λŠ” 경우 -> 1..n-1번 배열에 λŒ€ν•œ DP
    dp1 = [0] + money[:-1]
    for i in range(2, size):
        dp1[i] = max(dp1[i-1], dp1[i-2] + dp1[i])
    
    # 2번 μ„ νƒν•˜λŠ” 경우 -> 2...n번 배열에 λŒ€ν•œ DP
    dp2 = [0] + money[1:]
    for i in range(2, size):
        dp2[i] = max(dp2[i-1], dp2[i-2] + dp2[i])
        
    answer = max(dp1[-1], dp2[-1])
    return answer

 

μ›ν˜• DP에 λŒ€ν•œ λ¬Έμ œμ΄λ‹€.

2022.10.14 - [🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS] - [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°(2) (level3, python)

 

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°(2) (level3, python)

🏝 문제 μ„€λͺ… N개의 μŠ€ν‹°μ»€κ°€ μ›ν˜•μœΌλ‘œ μ—°κ²°λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. λ‹€μŒ 그림은 N = 8인 경우의 μ˜ˆμ‹œμž…λ‹ˆλ‹€. μ›ν˜•μœΌλ‘œ μ—°κ²°λœ μŠ€ν‹°μ»€μ—μ„œ λͺ‡ μž₯의 μŠ€ν‹°μ»€λ₯Ό λœ―μ–΄λ‚΄μ–΄ λœ―μ–΄λ‚Έ μŠ€ν‹°μ»€μ— 적힌 숫자의 합이

hoons-dev.tistory.com

 

μœ„ λ¬Έμ œμ™€ μ™„μ „νžˆ λ™μΌν•œ 문제이며, μ½”λ“œλ§ˆμ € λ™μΌν•˜λ‹€.

Level의 차이가 λ‚˜λŠ” μ΄μœ λŠ” λ„λ‘‘μ§ˆ λ¬Έμ œκ°€ νš¨μœ¨μ„± 체크λ₯Ό 더 κ°•ν•˜κ²Œ ν•˜κΈ° λ•Œλ¬ΈμœΌλ‘œ λ³΄μ΄λŠ”λ°, λ‘˜ λ‹€ μ›ν˜• DP ν’€μ΄λ‘œ ν’€λ¦°λ‹€.

 

이 문제의 해섀에 λŒ€ν•΄ μ•Œκ³  μ‹Άλ‹€λ©΄, μœ„ 링크의 ν•΄μ„€ 글에 λ‚˜μ™€μžˆμœΌλ‹ˆ μ°Έκ³  λ°”λž€λ‹€.

 

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ 동일쑰건 (μƒˆμ°½μ—΄λ¦Ό)

'🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 뒀에 μžˆλŠ” 큰 수 μ°ΎκΈ° (level2, python)  (0) 2023.04.10
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 연속 λΆ€λΆ„ μˆ˜μ—΄ ν•©μ˜ 개수 (level2, python)  (0) 2022.10.14
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°(2) (level3, python)  (0) 2022.10.14
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 배달 (level2, python)  (0) 2022.10.13
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 섬 μ—°κ²°ν•˜κΈ° (level3, python)  (1) 2022.10.13
    '🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 뒀에 μžˆλŠ” 큰 수 μ°ΎκΈ° (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 연속 λΆ€λΆ„ μˆ˜μ—΄ ν•©μ˜ 개수 (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μŠ€ν‹°μ»€ λͺ¨μœΌκΈ°(2) (level3, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 배달 (level2, python)
    개발자 HOON
    개발자 HOON
    쒋은 λ°±μ—”λ“œ μ—”μ§€λ‹ˆμ–΄κ°€ 되기 μœ„ν•œ 기둝을 λͺ¨μ•˜μŠ΅λ‹ˆλ‹€. # μ£Όλ‹ˆμ–΄ # λ°±μ—”λ“œ # 개발자

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”