상세 컨텐츠

본문 제목

백준 1149: RGB거리 (Swift)

Swift알고리즘

by 앱등개발자IOS 2022. 6. 2. 00:18

본문

지금 i번째 집을 칠할 때 우리는 무엇을 신경써야할까??

 

앞, 뒤?

 

뒷 집을 무슨 색으로 칠할지는 그 때 가서 생각하자!

 

현재 집을 초록색으로 칠하고싶다면, 그 최솟값은

앞집을 파랑색으로 칠한 경우, 빨간색으로 칠한 경우 

이 두가지 경우중 min값을 선택하여 현재 집을 초록색으로 칠할 때 드는 비용에 합쳐 저장한다.

 

같은 방식으로 두 번 더 진행하면,

현재 집을 앞 집과 색깔이 겹치지 않으면서, 해당 집을 각각 R, G, B로 칠할 때의 최소 비용을 구할 수 있다.

 

마지막에 result에서 최솟값을 취해줘야 모든 집을 칠하는 최솟값을 구하게 되는데,

배열의 최소, 최대를 .max(), .min()으로 가져올 때는 항상 Optional()타입으로 가져오므로 !로 언래핑을 해줘야한다!

'Swift알고리즘' 카테고리의 다른 글

백준 2579: 계단오르기 (Swift)  (0) 2022.06.03
백준 11047: 동전 0 (Swift)  (0) 2022.06.03
백준 11726: 2Xn 타일링  (0) 2022.06.01
백준 10162: 전자레인지 (Swift)  (0) 2022.06.01
백준 2217: 로프 (Swift)  (0) 2022.06.01

관련글 더보기