본문 바로가기

코딩테스트(python)/백준

백준 2775번 파이썬

반응형

1. 문제

2.설명

이중 for문을 사용하는 방법까진 맞았는데... 알고리즘이 약간 잘못되어서 계속 틀렸다 ㅠㅠ

결국 정답을 보며 공부하기 시작했는데, 리스트 comprehension 방식은 처음이라 코드를 이해하는데에 꽤 오랜 시간을 들였다!


f0 = [x for x in range(1, num+1) -> [1,2,3,4,5,6 ... num]

0번째 층에 대한 리스트로 1부터 num까지의 수가 리스트에 들어간다.

fo[i] 값에 f0[i-1]과 자기자신을 더해주며 각 호실의 사람 수를 변경해준다.

예를 들어, floor가 2고 num이 3이라면

0층 [1,2,3] 

1층 [1,3(1+2),3] -> [1,3,6(3+3)] 이 되어 1층 3호실에 해당하는 값인 6을 반환하게 된다.

3.코드

t = int(input())

for _ in range(t):
    floor = int(input())  # 층
    num = int(input())  # 호
    f0 = [x for x in range(1, num+1)]  # 0층 리스트
    for k in range(floor):  # 층 수 만큼 반복
        for i in range(1, num):  # 1 ~ num-1까지 (인덱스로 사용)
            f0[i] += f0[i-1]  # 층별 각 호실의 사람 수를 변경
    print(f0[-1])  # 가장 마지막 수 출력
반응형

'코딩테스트(python) > 백준' 카테고리의 다른 글

백준 10757번 파이썬  (0) 2022.08.30
백준 2839번 파이썬  (0) 2022.08.29
백준 10250번 파이썬  (0) 2022.08.25
백준 2869번 파이썬  (0) 2022.08.24
백준 1193번 파이썬  (0) 2022.08.23