반응형
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 |