일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 호이스팅
- 타입 좁히기
- 공변성
- 결정 알고리즘
- 이분 검색
- tailwind
- recoil
- RTK Query
- autosize
- map
- useAppDispatch
- dfs
- CORS
- Promise
- CI/CD
- 투포인터
- 인터섹션
- TS
- async/await
- ESlint
- SSR
- webpack
- React
- 반공변성
- Cypress
- 무한 스크롤
- app router
- 리터럴 타입
- 태그된 유니온
- Jest
Archives
- Today
- Total
짧은코딩
개미 전사 본문
반응형
교재 풀이
이렇게 바로 옆을 털면 지금 창고를 털지 못한다. 그리고 2번 떨어진 창고를 털면 지금 창고를 털 수 있다.
따라서 바로 옆 창고 vs (옆옆 창고 + 현재 창고) 이렇게 비교해서 더 큰 값을 찾아야 한다.
n = int(input())
ary = list(map(int, input().split()))
d = [0] * 100
d[0] = ary[0]
d[1] = max(ary[0], ary[1])
for i in range(2, n):
d[i] = max(d[i-1], d[i - 2] + ary[i])
print(d[n-1])
이런 풀이가 나온다. 위에서 설명했듯이 옆 창고 vs (옆옆 창고 + 현재 창고)를 비교하면서 푸는 문제이다.
이 문제를 다시 풀면서 for문 안에 max에서 (옆옆 창고 + 현재 창고)에서 현재 창고는 ary로 사용을 해야한다는 점을 주의해야 한다.
반응형
'코딩 테스트(Python) > 이것이 취업을 위한 코딩 테스트다' 카테고리의 다른 글
효율적인 화폐 구성 (0) | 2022.06.23 |
---|---|
바닥 공사 (0) | 2022.06.23 |
1로 만들기 (0) | 2022.06.21 |
다이나믹 프로그래밍 (0) | 2022.06.20 |
떡볶이 떡 만들기 (0) | 2022.06.16 |
Comments