[DAY44] 동적계획법_도둑질
2019. 9. 20. 20:45ㆍ개발/알고리즘
반응형
도둑질
문제 설명
도둑이 어느 마을을 털 계획을 하고 있습니다. 이 마을의 모든 집들은 아래 그림과 같이 동그랗게 배치되어 있습니다.
각 집들은 서로 인접한 집들과 방범장치가 연결되어 있기 때문에 인접한 두 집을 털면 경보가 울립니다.
각 집에 있는 돈이 담긴 배열 money가 주어질 때, 도둑이 훔칠 수 있는 돈의 최댓값을 return 하도록 solution 함수를 작성하세요.
제한사항
- 이 마을에 있는 집은 3개 이상 1,000,000개 이하입니다.
- money 배열의 각 원소는 0 이상 1,000 이하인 정수입니다.
입출력 예
money | return |
---|---|
[1, 2, 3, 1] | 4 |
풀이
- 접근: 1) 고리 형식이니 처음 거부터 시작, 그다음 거부터 시작 이 두 가지로 나눠서 생각 (근접한 거 접근 불가)
2) 사이 간격이 1칸 or 2칸일 수 있음
- 풀이: 1) for 문 돌면서 첫 번째부터 시작 기준 2칸, 1칸 가는 것 중에 돈이 높은 거 추가하도록 반복
2) for 문 돌면서 두 번째부터 시작 기준 2칸, 1칸 가는 것 중에 돈이 높은 거 추가하도록 반복 3) 1), 2) 중 돈이 높은 거 리턴
출처 및 전체 소스
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[DAY46] 연습문제_가운데글자가져오기 (0) | 2019.09.22 |
---|---|
[DAY45] 동적계획법_서울에서 경산까지 (0) | 2019.09.21 |
[DAY43] 동적계획법_카드 게임 (0) | 2019.09.19 |
[DAY42] 동적계획법_등굣길 (0) | 2019.09.18 |
[DAY41] 동적계획법_정수 삼각형 (0) | 2019.09.17 |