Baekjoon_10250번: ACM 호텔

HKTUOHA·2023년 9월 2일
0

알고리즘 문제

목록 보기
8/15
post-thumbnail

📌문제



📌코드

import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    H, W, N = map(int, input().split())  # 층 수, 방 수, 몇 번째 손님
    if N % H == 0:
        print(H*100 + N // H)
    else:
        print((N % H) * 100 + (N // H + 1))

❌오답

import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    H, W, N = map(int, input().split())  # 층 수, 방 수, 몇 번째 손님
    print((N % H) * 100 + (N // H + 1))
import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    H, W, N = map(int, input().split())  # 층 수, 방 수, 몇 번째 손님
    if N == H * W:
        print(H*100 + W)
    else:
        print((N % H) * 100 + (N // H + 1))


📌풀이

  1. H (층 수) = 6, W (호 수) = 12, N (손님의 순서) = 10이면 그림처럼 1호에 6명, 2호에 4명 배정받음
    따라서 (손님의 순서 % 층 수) == 배정받을 층
  2. 층 수만큼 손님이 배정되기 때문에 5번째 손님이면 (5 // 6 + 1) == 1로 1호 배정, 10번째 손님이면 (10 // 6 + 1) == 2이므로 2호 배정
    따라서 호 수는 (손님의 순서 // 층 수 + 1) == 배정받을 호가 됨
  3. 방 번호는 YXX나 YYXX 형태이므로 (층 수 * 100 + 호 수)로 출력해야 함

❗오답 이유

꼭대기 층, 즉 손님의 순서가 층 수의 배수일 때 (N % H) == 0 이 되므로 호 수만 출력된다.
따라서 (손님의 순서 % 층 수) == 0 이면 꼭대기 층은 (층 수 * 100) + (손님의 순서 // 층 수)를 해야 제대로 된 값이 나온다.

profile
공부 기록

0개의 댓글