백준 - 단계별 문제풀기(2775번, 2839번)

유다송·2022년 9월 6일
0

2775번

T = int(input())
for i in range(T) :
    k = int(input()) # 층수
    n = int(input()) # 호수
    people = [i for i in range(1, n+1)]

    for x in range(k) :
        for y in range(1, n) :
            people[y] += people[y-1]
    print(people[-1])
  • comprehension 사용해서 거주자 수 리스트를 생성한다.
  • for문 안에서 하위에 두 개의 for문을 작성한다. 첫 번째 for문은 입력받는 층수만큼 반복하고 두 번째 for문은 각 층의 1호부터 입력받는 호수까지 숫자를 반복해서 위에서 생성한 f0 리스트의 인덱스로 사용한다.
  • 두 번째 for문의 숫자 인덱스를 이용해서 이전 인덱스의 숫자를 더한 값을 리셋한다. 즉, 층 수가 증가할 때마다 한층 아래층의 이전 호실에 사는 사람의 숫자를 더하는 것과 같은 의미가 된다.
  • 두개의 반복문이 종료됐을 때, 가장 마지막 수를 호출하면 입력받은 층, 호수에 해당하는 사람 수를 출력할 수가 있다.

2839번

n = int(input())
bag = 0
while n >= 0:
    if n % 5 == 0:
        bag += (n // 5)
        print(bag)
        break
    n -= 3
    bag += 1
else:
    print(-1)

0개의 댓글