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
- 동읍면 DB
- 소개딩
- 인턴 지원
- EER
- DBMS
- ㅁㅇㅂ??ㅇㅈㄷ ㅎㅇㅌ...
- 3단계 지역 DB
- riceteacatpanda
- webhacking 처음
- PyAmdecoder
- Database
- Layered Architecture
- jsp
- SessionAttribute
- 정보보호병 후기
- reversing.kr
- Forensic 절차
- restapi
- 행정지역 DB
- frontend
- 메모리 포랜식
- JSTL
- spring
- mysql
- 네이버 인턴
- 소프트웨어 개발보안 경진대회
- Django
- 방명록 만들기
- react
- 인턴 후기
Archives
- Today
- Total
웹찢남
[백준 5557 1학년 문제] PYTHON 본문
이 문제를 아무 생각없이 덧셈 뺄셈을 할 때마다 배열에 추가하며 풀면 최대 2의 100승 크기의 배열이 나온다.
하지만 이 문제의 조건에는 셈을 진행하며 중간에 0 미만 or 20 초과는 셈에서 제한다는 조건이 있다.
따라서 Nx20 크기의 배열을 만들어 N-1의 숫자를 N으로 옮기는 방식으로 풀면 쉽게 해결할 수 있다.
t = int(input())
gd = list(map(int, input().split()))
dp = [[0]*21 for _ in range(t)]
answer = gd.pop()
dp[0][gd[0]] = 1
for i in range(1, t-1):
for j in range(21):
if dp[i-1][j]:
if j-gd[i] >= 0:
dp[i][j-gd[i]] += dp[i-1][j]
if j+gd[i] <= 20:
dp[i][j+gd[i]] += dp[i-1][j]
print(dp[t-2][answer])
'백준 Algorithm' 카테고리의 다른 글
[백준 4358 생태학 문제] PYTHON (0) | 2021.09.09 |
---|---|
[백준 1309 동물원 문제] PYTHON (0) | 2021.09.07 |
[백준 10942 펠린드롬? 문제] PYTHON (0) | 2021.08.24 |
[백준 1915 가장 큰 정사각형 문제] PYTHON (0) | 2021.08.23 |
[백준 1916 최소비용 구하기 문제] PYTHON (0) | 2021.08.20 |
Comments