문제
풀이
문제를 맞추는 개수부터 생각하면 접근 할 수 있다.
문제별 점수부터 생각하면 접근이 어렵다.
1번 입력예시 [2, 3, 5] 기준으로
- 다 틀리면 0점
- 1번까지 맞추면 (0)+(0+2)점
- 1~2번까지 맞추면 (0)+(0+2)+(0+3)+(0+2+3)점
- 1~3번까지 맞추면 (0)+…+(0+5)+(0+2+5)+…점
규칙을 확인할 수 있다.
덧셈을 진행 할수록 중복 점수가 생기기 때문에
중복제거가 계속 필요하다.
T = int(input())
for test_case in range(1, T+1):
N = int(input()) #시험 문항 수
score = list(map(int, input().split())) #문항 별 점수
answer = [0] #0점부터 시작
for s in score:
answer = list(set(answer)) #중복 점수 제거
for i in range(len(answer)):
answer.append(answer[i]+s)
print('#'+str(test_case), len(set(answer)))
댓글남기기