난이도 : D4
문제번호 : 3752
문제 주소 및 출처입니다.
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
영준이는 학생들의 시험을 위해 N개의 문제를 만들었다. 각 문제의 배점은 문제마다 다를 수 있고, 틀리면 0점 맞으면 배점만큼의 점수를 받게 된다. 학생들이 받을 수 있는 점수로 가능한 경우의 수는 몇 가지가 있을까? 예를 들어, 첫 번쨰 Testcase의 경우, 총 문제의 개수는 3개이며 각각의 배점은 2, 3, 5점이다 가능한 시험 점수의 경우의 수를 살펴보면 0, 2, 3, 5, 7, 8, 10의 7가지가 있다. 두 번째 Testcase의 경우, 총 문제의 개수는 10개이며 각각의 배점은 모두 1점이다. 가능한 시험점수의 경우의 수를 살펴보면 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10으로 모두 11가지이다. |
입력
첫 번째 줄에 테스트 케이스의 수 T가 주어진다. |
출력
각 테스트 케이스마다 학생들이 받을 수 있는 점수의 경우의 수를 출력한다. |
예시
입력 | 출력 |
2 3 2 3 5 10 1 1 1 1 1 1 1 1 1 1 |
#1 7 #2 11 |
2. 문제풀이
구할수 있는 최대 수만큼의 리스트를 만들어 주고 |
3. 소스코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#D4 3752 가능한 시험 점수
for t in range(1, int(input())+1):
N = int(input())
scores = list(map(int, input().split()))
#수가 나왔는지 체크
check = [1] + [0] * sum(scores)
#나온 수 체크
visit = [0]
for i in scores:
temp = visit[:]
for j in temp:
if not check[i + j]:
#사용한 수는 체크
check[i + j] = 1
#이미 계산된 수에 더 계산하기 위해 추가한다.
visit.append(i + j)
print('#{} {}'.format(t, len(visit)))
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
러시아 국기같은 깃발 Python(SW Expert Academy, SWEA) (0) | 2020.06.19 |
---|---|
자기방으로 돌아가기 Python(SW Expert Academy, SWEA) (0) | 2020.06.18 |
최솟값으로 이동하기 Python(SW Expert Academy, SWEA) (0) | 2020.06.16 |
올림픽 종목 투표 Python(SW Expert Academy, SWEA) (0) | 2020.06.15 |
가장빠른 문자열 타이핑 Python(SW Expert Academy, SWEA) (0) | 2020.06.14 |
댓글