또 뭐하지

백준 2775번 부녀회장이 될테야 본문

Study/Coding Test

백준 2775번 부녀회장이 될테야

mameul 2024. 11. 2. 16:35
728x90

 

■ solve code

T = int(input())

for _ in range(T):
    k = int(input())
    n = int(input())
    resident = [i for i in range(1,n+1)] # 0층 거주 인원 초기화
    #print(resident)
    
    for x in range(k): #k층
        tmp = []
        for y in range(n): # 1~n호실
            tmp.append(sum(resident[:y+1])) #k층 거주 인원 리스트 생성
        resident = tmp.copy() #resident를 k층 거주 인원으로 변경
        #print(resident)
    print(resident[-1]) #최종 k층 n호 거주인원

 

print 주석을 제거해보면 아래와 같이 각 층 호실별 거주인원을 확인할 수 있다.

 


T = int(input())

def resident(k, n):
    
    if k == 0 :
        return n
    
    else:
        res = 0
    
        for i in range(n) :
            res += resident(k-1, i+1)
        
        return res

for _ in range(T):
    k = int(input())
    n = int(input())
    
    print(resident(k,n))

처음에 시도했던 재귀함수 코드는 시간 초과가 났다. 어떤 때 재귀함수를 쓰고 말아야할지 고민을 해봐야할 것 같다.

'Study > Coding Test' 카테고리의 다른 글

백준 28702번 FizzBuzz  (0) 2024.11.11
백준 2609번 최대공약수와 최소공배수  (0) 2024.11.01
백준 1546번 평균  (1) 2024.10.31