코딩/공부

[Python] 백준 9095번 - 1, 2, 3 더하기

취미니스트 2024. 3. 21. 16:02
728x90
반응형

문제

https://www.acmicpc.net/problem/9095

 

표준 입력을 사용하기 위해 sys 모듈 추가.

테스트 케이스 개수 입력.

import sys
input = sys.stdin.readline
t = int(input())

 

입력한 숫자만큼 반복.

- 정수 하나 입력.

- 개수 0으로 초기화.

- 개수를 세기 위한 함수 실행.

=> 인자는 0으로 설정.

- 개수 출력.

for _ in range(t):
    n = int(input())
    count = 0
    func(0)
    print(count)

 

개수를 세기 위한 함수 제작.

- 개수 변수를 전역 변수로 설정.

- 매개변수의 값이 입력받은 숫자보다 큰 경우 함수 종료.

- 매개변수의 값이 입력받은 숫자와 같은 경우 개수 1 증가.

- 1부터 3까지 반복.

-- 매개변수 + i 를 전달하여 함수 실행(재귀).

def func(num):
    global count
    if num > n:
        return
    if num == n:
        count += 1
        return
    for i in range(1, 4):
        func(num + i)

 

전체 코드.

import sys


def func(num):
    global count
    if num > n:
        return
    if num == n:
        count += 1
        return
    for i in range(1, 4):
        func(num + i)


input = sys.stdin.readline
t = int(input())
for _ in range(t):
    n = int(input())
    count = 0
    func(0)
    print(count)
728x90
반응형