heheh
히히
heheh
전체 방문자
오늘
어제
  • 히히 (75)
    • AI (14)
      • Model (Study) (3)
      • Model (Paper) (7)
      • Tip! (4)
    • Backend (3)
      • ASP.NET (1)
      • Spring (2)
      • program (0)
      • JAVA (0)
    • Program (11)
      • Docker (3)
      • Github (5)
      • AWS (3)
    • OS (1)
      • Window (1)
      • Linux (0)
    • Python (14)
      • Python Lib (11)
      • Pytorch (1)
      • Tensorflow (1)
      • 크롤링 (1)
    • Spark (3)
      • Scala (2)
      • Pyspark (0)
      • SQL (1)
    • IOS (Swift) (0)
      • 기본 개념 (0)
    • 프로젝트 (3)
      • [AI] GAN (0)
      • [IOS] Swift (3)
      • [AI] 추천시스템 (0)
    • 분석 (1)
    • 알고리즘 풀이 (22)
      • 백준 (22)
    • 기타 (3)
      • 장비세팅 (3)
      • 소개 (0)

인기 글

최근 글

최근 댓글

hELLO · Designed By 정상우.
heheh

히히

알고리즘 풀이/백준

백준 1149번 : RGB거리 (Python)

2021. 3. 3. 19:33

문제 : www.acmicpc.net/problem/1149

 

1149번: RGB거리

첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나

www.acmicpc.net

 

풀이

다른 사람의 풀이를 참고했다.

 

dp에 값을 1개씩이 아닌 3개씩 저장한다.

반복문을 돌며 해당 위치(i)에서 R,G,B 로 각각 칠했을 때를 dp에 리스트로 저장한다.

즉 dp에는 지금까지 더한 값(dp) 중 i-1에서 R위치를 제외하고 가장 작은 값 + i에서 R로 칠할 경우를 B, G도 똑같이 수행한뒤 추가한다.

 

n = int(input())

cost = []

for i in range(n):
    a = list(map(int, input().split()))
    cost.append(a)

dp = []
dp.append(cost[0])

for i in range(1,n):
    temp = [0,0,0]
    temp[0] = cost[i][0] + min(dp[i-1][1], dp[i-1][2])
    temp[1] = cost[i][1] + min(dp[i-1][0], dp[i-1][2])
    temp[2] = cost[i][2] + min(dp[i-1][0], dp[i-1][1])

    dp.append(temp)

print(min(dp[n-1]))

'알고리즘 풀이 > 백준' 카테고리의 다른 글

백준 2193번 : 이친수 (Python)  (0) 2021.02.16
백준 14501번 : 퇴사 (Python)  (0) 2021.02.08
백준 11712번 : 2×n 타일링 2 (Python)  (0) 2021.02.07
백준 1010번 : 다리 놓기 (Python)  (0) 2021.02.06
백준 9461번 : 파도반 수열 (Python)  (0) 2021.02.06
    heheh
    heheh

    티스토리툴바