난이도 : D4
문제번호 : 3752
문제 주소 및 출처입니다.
목차
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 |
댓글