백준 10250 - ACM호텔(파이썬)

박진우·2022년 9월 7일
0

알고리즘

목록 보기
24/89

💡백준 10250

◽ 문제





◽ 입력 & 출력





◽ 풀이

N번째로 도착한 손님에게 배정될 방번호를 계산하는 프로그램이다.

첫 번째 손님은 101 호, 두 번째 손님은 201 호, 세 번째 손님은 301 ...6번째 손님은 601 7번째 손님은 102에 등과 같이 배정해야한다.


  • 만약 호텔의 층 수(h) 8이고 8번째 손님에게는 801호를 배정해야 하고,

  • 호텔의 층 수(h) 5이고 6번째 손님에게는 102 호를 배정해야 한다는 것이다.


여기서 규칙을 찾을 수 있는데

  • 첫 번째 규칙은 층 수 (floor)몇번 째 손님(n)층 수 (h)로 나눈 나머지

  • 두 번째 규칙은 호수(room_number) 몇번 째 손님(n)층 수(h) 로 나눈 몫 +1


➡️ floor = n % h

h = 6 , w= 12 , n = 10 -> floor10 % 6 = 4

➡️ room_number = n // h + 1

h = 6 , w= 12 , n = 10 -> room_number10 // 6 + 1 = 2

h = 6 , w= 12 , n = 10 -> 402



하지만 여기서 예외❗의 경우가 있다.


만약 h = 6 , w= 12 , n = 6이라면

  • floor6 % 6 = 0

  • room_number6 // 6 + 1 = 2

0층 2호가된다.

손님의 숫자호텔의 층수같을 때높이가 딱 맞아 떨어질 때 예외❗ 처리를 해야한다.

➡️ floor호텔의 층 수로 하고, room_number-1을 해줘야한다.



◽ 최종 풀이

0개의 댓글