Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 1차원 DP
- 2차원 dp
- 99클럽
- @GeneratedValue
- @GenericGenerator
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- async/await
- AVG
- AWS
- Azure
- bind
- builder
- button
- c++
- c++ builder
- c03
- Callback
- case when
- CCW
- chat GPT
- CICD
- Collections
- Combination
- combinations
- Comparator
Archives
- Today
- Total
기록
백준_17404_RGB거리 2 본문
문제
https://www.acmicpc.net/problem/17404
풀이
1) 첫번째 집에 사용할 페인트 색 고르기
첫번째 집과 마지막 집에 사용되는 페인트가 달라야 한다는 조건을 만족하기 위해 경우의 수를 나누어 계산하였다.
1. 첫번째 집에 빨간색 페인트를 사용한다.
두번째 집과 마지막 집의 빨간색 페인트가 선택되지 않기 위해서 충분히 큰 값을 넣는다.
첫번째 집의 초록색과 파란색 페인트가 선택되지 않기 위해서 충분히 큰 값을 넣는다.
2. 첫번째 집에 초록색 페인트를 사용한다.
두번째 집과 마지막 집의 초록색 페인트가 선택되지 않기 위해서 충분히 큰 값을 넣는다.
첫번째 집의 빨간색과 파란색 페인트가 선택되지 않기 위해서 충분히 큰 값을 넣는다.
3. 첫번째 집에 파란색 페인트를 사용한다.
두번째 집과 마지막 집의 파란색 페인트가 선택되지 않기 위해서 충분히 큰 값을 넣는다.
첫번째 집의 초록색과 빨간색 페인트가 선택되지 않기 위해서 충분히 큰 값을 넣는다.
2) 가장 적은 비용으로 페인트 칠하기
다이나믹 프로그래밍을 이용하여 해결하는 문제이며 이과정은 1149번과 동일하다.
https://www.acmicpc.net/problem/1149
2021/02/05 - [코딩테스트] - 백준_1149_RGB거리
코드
# The first house is painted with red/green/blue paint.
# r, g, b = 0, 1, 2
# 비용은 1,000보다 작거나 같은 자연수
from sys import stdin
N = int(stdin.readline())
arr = [list(map(int, stdin.readline().split())) for i in range(N)]
ans = list()
for c in range(3) : # c=1:red / c=2:green / c=3:blue
# 새로운 점수판을 생성하고, 첫번째, 두번째, 그리고 마지막 줄에 충분히 큰 값 넣기
tmp = [[t for t in item] for item in arr]
tmp[-1][c], tmp[1][c], tmp[0][c-1], tmp[0][c-2] = (1001,)*4
# 순서대로 탐색하기
for i in range(1, N) :
for j in range(3) :
tmp[i][j] += min(tmp[i-1][j-1], tmp[i-1][j-2])
ans.append(min(tmp[-1]))
print(min(ans))
'코딩테스트 > python' 카테고리의 다른 글
프로그래머스_행렬 테두리 회전하기 (0) | 2021.05.16 |
---|---|
백준_9328_열쇠 (0) | 2021.02.11 |
백준_1149_RGB거리 (0) | 2021.02.05 |
백준_2166_다각형의 면적 (0) | 2021.02.02 |
백준_1654_랜선 자르기 (0) | 2021.01.18 |
Comments