원리를 알면 생각보다 쉽게 풀리는 문제였습니다.
- 우선 testNum에는 테스트케이스의 개수를 저장합니다.
- 첫번째 반복문을 통해 테스트케이스 각각의 세 가지 값을 arr 배열에 저장합니다.
ex) 2 6 12 6 30 50 72 의 경우 arr = [['6','12','6'],['30','50','72']]로 만들어줍니다.
- 두번째 반복문에서는 H,W,N 각각을 인덱스자리 마다 설정해줍니다.
- Y는 층수를 구하는 값으로 손님의 순서수를 호텔 층수로 나눈 값이 손님방의 층수가 됩니다. 이때 예외가 있는데, 6의 배수 번째마다 오시는 손님들은 6 나누기 호텔 층수, 즉 나머지 값이 0이 되어 층수가 0층으로 설정됩니다. 따라서 조건문을 통해 나머지값이 0이면 호텔 최대 층 수가 Y값이 되게 설정합니다.
- 그리고 X는 호수를 말하는데, 손님의 순서수에서 호텔층수를 나눈 반올림한 값이 설정됩니다.
- 마지막 Y와X 값을 합쳐줄때는 문자열로 변환후 합치고 X의 경우에는 일의자리 수일 경우 0을 포함해야하므로 padStart()를 이용합니다.
문제를 풀기 전에 구해야하는 조금의 수학문제를 해결해놓고 코드로 풀어쓰면 더 쉽게 해결할 수 있습니다.