문제
https://www.acmicpc.net/problem/2775
문제는 위 사이트를 참고해주세요.
풀이
T = int(input())
for x in range(T):
k = int(input())
n = int(input())
apartment = [i for i in range(1, n+1)]
for i in range(k):
for j in range(1, n):
apartment[j] = apartment[j] + apartment[j-1]
print(apartment[n-1])
T는 테스트 케이스의 개수입니다.
먼저 테스트 케이스만큼 for문을 돌립니다.
그 때 층 수와 호수를 입력받고,
apartment에 1부터 n까지 입력 받습니다. ex) n=3, apartment = [1,2,3]
--> 이 과정이 0층의 값을 호수만큼 넣어주는겁니다.
두 번째 for문은 층 수만큼 for문을 돌려줍니다.
세 번째 for문은 각 층수의 호수를 더한 값입니다.
3층 3호의 인원을 구하면
1층 2호까지 사는 사람은 2+1=3, 1층 3호까지 사는 사람은 3+3=6 -----> apartment = [1,3,6]
2층 2호까지 사는 사람은 3+1=4, 2층 3호까지 사는 사람은 6+4=10 -----> apartment = [1,4,10]
3층 2호까지 사는 사람은 4+1=5, 3층 3호까지 사는 사람은 10+5=15 -----> apartment = [1,5,15]
결과
T = int(input())
apartment = []
for x in range(T):
k = int(input())
n = int(input())
if n == 1:
print(n)
else:
for i in range(0, 15):
apartment.append([0]*15)
for i in range(1, 15):
apartment[0][i] = i
for i in range(1, 15):
for j in range(1, 15):
apartment[i][j] = apartment[i][j-1] + apartment[i-1][j]
print(apartment[k][n])
처음 코드는 위와 같이 조건에 있는 1~14까지 배열을 만들고 값을 저장했습니다.
'IT > 알고리즘' 카테고리의 다른 글
1일 N알고리즘 - #21 (0) | 2020.05.21 |
---|---|
1일 N알고리즘 - #20 (0) | 2020.05.21 |
1일 N알고리즘 - #18 (0) | 2020.05.20 |
1일 N알고리즘 - #17 (0) | 2020.05.19 |
1일 N알고리즘 - #16 (0) | 2020.05.18 |
댓글