Baekjoon
[Baekjoon][Python] 10250 ACM호텔
Spiritup_91
2021. 3. 22. 21:43
ACM호텔. 수학 문제
규칙을 찾는 문제였다.
주어진 예제입력과 직접 테스트케이스를 정해서 규칙을 찾아보았다.
If문을 통해 2가지 경우를 나눠서 출력하도록 했다.
1. N( 몇번째 손님) / H(높이) 의 나머지가 0 일 경우
이 경우에는 나머지가 0으로 나오므로 가장 위의 방번호가 주어진다.
즉
6번째 손님에 높이가 6이면 601호
12번째 손님에 높이가 6이면 602호
18번째 손님에 높이가 6이면 603호
.
.
이와 같이 H가 N의 배수이면 앞의 층수는 H이고 뒤의 호수는 N의 배수만큼 늘어난다
그러므로 코딩은 다음과 같이
나머지가 0이면 h*100을 곱한수에 몫을 더해주면 된다.
2. N( 몇번째 손님) / H(높이) 의 나머지가 0가 아닐 경우
이 경우에는 각 테스트케이스로 규칙을 찾아보니
10번째 손님에 높이가 6이면 101~ 601 까지 돌아가고 다시 102, 202, 302, 402 로 10번째손님이 402호에 배정.
72번째 손님에 높이가 30이면 101~ 3001 까지 돌아가고 다시 102~ 3002 까지가면 60명. 남은 12명은 101 ~ 1203해서 72번째 손님은 1203방에 배정된다.
이와같이 규칙은
N / H 의 나머지에 *100을 곱하고 N/H의 몫에 1을 더하면 방이 계산된다.
=> 높이만큼 반복하고 남은 나머지는 1호~1+나머지호수 까지 방이 주어지게 되므로.
그래서 그리 어렵지 않게 풀 수 있었다!
내 풀이