코딩 테스트/Baekjoon

S1 1149. RGB거리

  • -
728x90
반응형

문제 보기 :  1149번: RGB거리


문제

  • 정답률 : 56%


작성 코드 & 풀이 과정 코멘트

## DP

T = int(input())
cost = [list(map(int,input().split())) for _ in range(T)]
# cost = [[26,40,83],[49,60,57],[13,89,99]]

color = [[0]*3 for _ in range(T)]
color[0] = cost[0]
# color = [[26,40,83],[0,0,0],[0,0,0]]

for i in range(1,T):
    color[i][0] = cost[i][0]+ min(color[i-1][1],color[i-1][2]) #[49+40, 0, 0] / 
    color[i][1] = cost[i][1]+ min(color[i-1][0],color[i-1][2]) #[40+49, 60+26, 0]
    color[i][2] = cost[i][2]+ min(color[i-1][0],color[i-1][1]) #[40+49, 60+26, 57+26]
    
print(min(color[-1]))

 

문제를 푸는 시선을 살짝만 바꾸면 되는 문제다
(사실 난 DP 자체가 접근을 시도하는 값/요소에 변화를 줘야하는 알고리즘이라 생각하고 있다)
위에서 아래로 차례대로 더해간다기보다는, 어느 좌표에 놓인 값들([i,0], [i,1], [i,2])마다 경우를 나누어 계산했다.포인트가 되는 부분은 for문 속 min()이라 생각한다.아래 포스팅은 프로그래머스에서 출제된 문제였는데, 비슷한 문제로 보여서 첨부한다.

 

Lv3. 정수 삼각형

문제 보기 :  정수 삼각형  프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으

dtdiary.tistory.com

320x100
728x90

'코딩 테스트 > Baekjoon' 카테고리의 다른 글

S1 2156. 포도주 시식  (1) 2024.10.22
S1 1697. 숨바꼭질  (0) 2024.10.22
S1 1931. 회의실 배정  (0) 2024.10.18
S1 2667. 단지번호붙이기  (0) 2024.10.18
S5 2751. 수 정렬하기 2  (0) 2024.10.16
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.