[백준 10250 파이썬] - ACM 호텔

zsunny·2022년 6월 29일
0

📌 문제

💯 정답

• 방법 1. 리스트에 방 호수를 조건에 맞는 순서대로 입력

def solution(H, W, N):
    rooms = list()
    for j in range(W):
        for k in range(H):
            rooms.append(str(k+1)+str('{0:02d}'.format(j+1)))
    print(rooms[N-1])

T = int(input())

for i in range(T):
    H, W, N = map(int, input().split())
    solution(H, W, N)

• 방법 2. 시간 단축, 코드길이 단축

t = int(input())

for i in range(t):
    h, w, n = map(int, input().split())
    floor = n % h
    room = (n // h) + 1
    if floor == 0:
        floor = h
        room -= 1

    print(floor * 100 + room)

📝 설명

• 방법 1. 주어진 조건에 맞는 입실 순서는 
		 101 201 301 401 501 ••• 102 202 302 402 502 이다.
         따라서 이를 반복문을 통해 리스트 rooms에 넣는다.
• 방법 2. 층과 방 번호를 구하는 규칙을 찾는다.
		 이때, n % h 가 0이 되는 경우는 h가 가장 꼭대기 층일때 이다.
         따라서 floor를 0이 아닌 h로 재정의 해주고 room또한 -1을 해주어야 한다. 

⭐️ 알고가기 _ format()

👉 format() 설명 바로가기

  • format( )의 자릿수와 소수점 지정
# 정수 N자리 ( {인덱스:0자릿수d} )
s = '{0:02d}, {1:03d}'.format(12345, 1)
print(s)		// 12345, 001

# 소수점 N자리 ( {인덱스:0.자릿수f} )
s = '{0:0.1f}, {1:0.3f}'.format(12.345, 1.2)
print(s)		// 12.3, 1.200
profile
매일 성장하는 예비 웹 개발자 🌱

0개의 댓글