거누의 개발노트
[파이썬] 백준 - 1, 2, 3 더하기 - 9095 본문
반응형
문제
정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다.
- 1+1+1+1
- 1+1+2
- 1+2+1
- 2+1+1
- 2+2
- 1+3
- 3+1
정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다.
예제 입력
3
4
7
10
예제 출력
7
44
274
작성한 코드
import itertools
import sys
N = int(sys.stdin.readline())
case = [int(sys.stdin.readline().strip()) for _ in range(N)]
for c in case:
cnt = 0
for j in range(1, c+1):
cnt += [sum(i) for i in list(itertools.product([1,2,3], repeat=j))].count(c)
print(cnt)
백준에서 확인
https://www.acmicpc.net/problem/9095
9095번: 1, 2, 3 더하기
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.
www.acmicpc.net
회고
product와 count를 사용해서 풀수있었다.
product를 사용하지 않고 구현했다면 힘든 풀이었을거다.
itertools를 사용하지 않고 푸는 방법도 공부해야겠다.
반응형
'코딩테스트' 카테고리의 다른 글
[파이썬] 프로그래머스 - 예상 대진표 (0) | 2022.05.23 |
---|---|
[파이썬] 백준 - 암호 만들기 - 1759 (0) | 2022.05.21 |
파이썬 알고리즘 인터뷰 - 전화 번호 문자 조합 (0) | 2022.05.19 |
[파이썬] 백준 - 수 찾기 - 1920 (0) | 2022.05.18 |
파이썬 알고리즘 인터뷰 - 상위 K 빈도 요소 ( * ) (0) | 2022.05.18 |
Comments