본문 바로가기

개인 공부

8/2 화_코딩 테스트 연습(Python), divmod()

728x90

1. 백준 브론즈 2

# 백준 10870번 피보나치 수 5
'''Fn = Fn-1 + Fn-2'''
'''0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597 <- n = 17'''

# import sys

a = [0, 1]
# n = int(sys.stdin.readline())
n = int(input())

for i in range(1, 21):
    a.append(a[-2] + a[-1])

print(a[n])

 

2. 백준 브론즈 2

# 백준 10250번 ACM 호텔
# Ver. 1 내 풀이
T = int(input()) # 2
rooms = []

for i in range(T):
    H, W, N = map(int, input().split()) # 6 12 10 / 30 50 72
    for j in range(1, W + 1): # 방 개수
        for k in range(1, H + 1): # 층 수
            if k < 10 and j < 10:
                rooms.append(str(k) + '0' + str(j))
            elif k >= 10 and j < 10:
                rooms.append(str(k) + '0' + str(j))
            else:
                rooms.append(str(k) + str(j))
    # print(rooms)
    print(rooms[N-1])
    rooms.clear()

#-----------------------------------------------------------#
# Ver. 2
T = int(input())

for i in range(T):
    h, w, n = map(int, input().split( )) # h=각 호텔의 층 수, w=각 층의 방 수, n=몇번째 손님

    floor = n % h 
    room_line = (n // h) + 1
    if floor == 0:
        floor = h
        room_line -= 1
    
    print(floor * 100 + room_line)
    
#-----------------------------------------------------------#
# Ver. 3
t = int(input())

for _ in range(t):
    h, w, n = map(int, input().split())
    q, r = divmod(n-1, h) # q: 몫, r: 나머지
    print((r + 1) * 100 + q + 1)

 

3. divmod()

divmod(a, b)는 두 개의 숫자를 입력받고 그 몫과 나머지를 튜플 형태로 반환하는 함수

728x90