백준 2579. 계단 오르기

2024. 3. 10. 00:20·백준

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

 

2579번: 계단 오르기

계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점

www.acmicpc.net

'''
한번에 계단 +1 or +2
연속된 세 계단 밟으면 안됨(+1+1+1 +2+2+2 x)
마지막 도착 계단은 반드시 밟아야 됨 -> 그럼 마지막 칸에서 처음으로 가는 걸 생각해보면?
점수의 최댓값

사고 방식(탑다운): 어디에서 올라왔을까? 한칸 전? 두칸 전?
'''

import sys
input = sys.stdin.readline
n=int(input())
s=[int(input()) for _ in range(n)]
dp=[0]*(n)
if len(s)<=2: # 계단이 2개 이하일 경우는 한칸깡총+한칸깡총으로 고정
    print(sum(s))
else:
    dp[0]=s[0] # 첫 번째 계단(고정)
    dp[1]=s[0]+s[1] # 두 번째 계단(고정)
    for i in range(2,n): # 세번째 계단부터 최댓값 판단해줌
        dp[i]=max(dp[i-3]+s[i-1]+s[i], dp[i-2]+s[i]) # 직전에서(두칸깡총+한칸깡총) 올라옴 vs 두칸전에서(두칸깡총) 올라옴 -> 이렇게 하면 세칸 연속으로 올라올 수가 없음
    print(dp[-1]) # 시작칸 도착했을 경우 누적된 최대점수

탑다운/바텀업을 적극 이용

고정된 값은 미리 넣어두고

패턴을 구해서 점화식을 구해보자!

저작자표시 (새창열림)

'백준' 카테고리의 다른 글

백준 11726. 2xn 타일링  (0) 2024.03.10
백준 1149. RGB거리  (0) 2024.03.10
백준 9095. 1, 2, 3 더하기  (0) 2024.03.09
백준 10844. 쉬운 계단 수  (0) 2024.03.08
백준 4883. 삼각 그래프  (0) 2024.03.07
'백준' 카테고리의 다른 글
  • 백준 11726. 2xn 타일링
  • 백준 1149. RGB거리
  • 백준 9095. 1, 2, 3 더하기
  • 백준 10844. 쉬운 계단 수
버그잡는고양이발
버그잡는고양이발
주니어 개발자입니다!
  • 버그잡는고양이발
    지극히평범한개발블로그
    버그잡는고양이발
  • 전체
    오늘
    어제
    • 분류 전체보기 (383) N
      • React (16)
      • Next.js (5)
      • Javascript (5)
      • Typescript (4)
      • Node.js (2)
      • Cs (16)
      • 트러블 슈팅&리팩토링 (6) N
      • Html (1)
      • Css (3)
      • Django (0)
      • vue (0)
      • Java (2)
      • Python (0)
      • 독서 (1)
      • 기타 (3)
      • 백준 (192)
      • swea (31)
      • 프로그래머스 (30)
      • 이코테 (4)
      • 99클럽 코테 스터디 (30)
      • ssafy (31)
      • IT기사 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 태그

    개발자취업
    항해99
    99클럽
    Til
    코딩테스트준비
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
버그잡는고양이발
백준 2579. 계단 오르기
상단으로

티스토리툴바