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+나머지호수 까지 방이 주어지게 되므로.

 

그래서 그리 어렵지 않게 풀 수 있었다!

 

 

내 풀이