BAEKJOON_2156) 포도주 시식
BAEKJOON
# 알고리즘 기초 # 2019 SW역량테스트준비-기초
3. 다이나믹 프로그래밍
2156) 포도주 시식 (19.03.20) (19.09.29)
* 이차원 배열로 풀이했다.
* D[i][j] : i 번째 포도주 잔, j 번 연속으로 마심
* 0번, 1번, 2번 연속 마심을 이전에 구한 값을 사용해 새로운 값을 알아내는 규칙을 찾았다.
* 0번 연속이면 지금 잔을 안마신 것이기 때문에 바로 전 값들 중 최대값을 사용,
* 1번 연속이면 이전 잔을 먹지 않은 것,
* 2번 연속이면 이전 잔이 1번 연속이라는 뜻이다.
* 일차원 배열로도 수정해 보았다.
* 이차원 배열에서 사용했던 arr 배열을 다른 값으로 다 치환했다.
* 어떤 차이가 있을까, 뭐가 더 좋을까 하는 생각을 했었는데,
* 메모리, 시간은 모두 별 차이 없었고, 코드 길이가 살짝 줄어들긴 했다.
* 강의에서도 특별히 언급한 부분이 없어서 더 편한 방법을 쓰면 되는건가 싶다.
댓글
댓글 쓰기