728x90
문제 링크: https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
제목에서처럼 방법2가지라고 쓴 이유는
예전에 풀어봤었는데, 제출을 안했어서 안 푼문제로 되어있었음
다시 문제를 풀어봤는데, 다른 방법으로 풀었던 거 아니겠음??
❓ 정답은 ??
방법 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 |
import sys
t=int(sys.stdin.readline())
for _ in range(t):
k=int(sys.stdin.readline())
n=int(sys.stdin.readline())
#2차원 리스트를 만들고 0층은 apt[0]에 있음
apt=[[0,1] for i in range(k+1)] #0충 기본 세팅
for a in range(2,n+1):
apt[0].append(a)
for floor in range(1,k+1):
for room in range(2,n+1):
x=apt[floor][room-1]+apt[floor-1][room]
apt[floor].append(x)
print(apt[k][n])
|
cs |
방법2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
t = int(input())
for i in range(t):
floor = int(input())
room = int(input())
base = [j for j in range(1, room+1)] #0층 각 호수의 인원 리스트
# 층수만큼 반복
for k in range(floor):
#이전리스트에다가 하나씩 덮어쓰기로 넣어서 리스트 만들기
for n in range(1,room):
base[n]=base[n]+base[n-1]
print(base[-1])
|
cs |
💯 풀이 과정
방법 1
1) apt를 2차원리스트를 만든다. 0층은 apt[0]에 있고 1층은 apt[1]에 있고
2) 원하는 값이 현재층 앞 호수 + 아래층 같은 호수 사람을 더한 것이기에
3) 반복문을 0부터 시작하면 아래층이 없어서 1층부터 반복문 돌리기
4) 0층은 그 전에 미리 세팅
방법2
1) base라는 0층 리스트 만들기
2) 반복문으로 1층부터 구하는데 이때는 덮어쓰기로 base리스트에 넣어주기
3) 나중에 base[-1]을 구하는 이유는 가장 마지막 오른쪽값이 우리가 원하는 값이니까
😎오늘의 한줄평: 다시 풀어도 방법은 다르구낭
728x90
'😁 빅데이터 문제 풀기 & Study > - BAEKJOON 문제' 카테고리의 다른 글
[10989] 직각삼각형 / 파이썬 (피타고라스 정리 사용) (0) | 2021.11.19 |
---|---|
[1011번] Fly me to the Alpha Centauri / python3 (공책에 써보면서 규칙찾기) (0) | 2021.11.17 |
[5622번] 다이얼 / python3 (0) | 2021.11.15 |
[9012번] 괄호 / python3 (다시도전하기. 서방님&새색시 방법) (0) | 2021.11.15 |
[10250번] ACM호텔 / python3 (낮은 층을 선호하는 아이러니한 세상) (0) | 2021.11.15 |