coding test

[파이썬] 4869. 종이붙이기

잔망루피 2021. 1. 11. 21:32

swexpertacademy.com/main/learn/course/lectureProblemViewer.do

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

 

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.


어린이 알고리즘 교실의 선생님은 경우의 수 놀이를 위해, 그림처럼 가로x세로 길이가 10x20, 20x20인 직사각형 종이를 잔뜩 준비했다.

   



그리고 교실 바닥에 20xN 크기의 직사각형을 테이프로 표시하고, 이 안에 준비한 종이를 빈틈없이 붙이는 방법을 찾아보려고 한다. N이 30인 경우 다음 그림처럼 종이를 붙일 수 있다.


 




10의 배수인 N이 주어졌을 때, 종이를 붙이는 모든 경우를 찾으려면 테이프로 만든 표시한 영역을 몇 개나 만들어야 되는지 계산하는 프로그램을 만드시오. 직사각형 종이가 모자라는 경우는 없다.


[입력]

첫 줄에 테스트 케이스 개수 T가 주어진다.  1≤T≤50
다음 줄부터 테스트 케이스 별로 N이 주어진다. 10≤N≤300, N은 10의 배수

[출력]

각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.

입력 출력
3
30
50
70
#1 5
#2 21
#3 85

 

👓 나의 풀이

 

 

 

🎗 다른사람 풀이

 

def GetSome(x):
    if x == N:
        return 1
    if x > N:
        return 0
    return GetSome(x+10) + GetSome(x+20) * 2


TC = int(input())
for tc in range(1, TC + 1):
    N = int(input())
    print('#%d %s'%(tc, GetSome(0)))

 

재귀를 이용했다. 

x=0 getsome(x+10)

x=10 

x=20 return 1

x=20 GetSome(x+20) x>N : return 0

x=10 GetSome(x+10)

x=0 GetSome(x+10)

x=10 GetSome(x+20) : return 1

x=0 GetSome(x+20)

인 것 같은데..? 

모르겠다. 왜 30이 5가 나오는지.. 

GetSome(x+20)이 return 1 한 번 나왔는데;;

 

반응형

'coding test' 카테고리의 다른 글

[파이썬] 4871. 그래프 경로  (0) 2021.01.13
[파이썬] 4866. 괄호검사  (0) 2021.01.12
[파이썬] 4865. 글자수  (0) 2021.01.11
[파이썬] 4861. 회문  (0) 2021.01.08
[파이썬] 4864. 문자열 비교  (0) 2021.01.08