-
[백준/C] 10250번 - ACM 호텔Problem Solving 2022. 5. 12. 20:27
테스트케이스의 수, 호텔의 높이와 너비, 투숙객의 순번이 주어지면 해당 투숙객이 묵을 방 번호를 구하는 문제이다.
투숙객이 자리하는 순서는 간단하다. 위 배치도를 배열로 봤을 때, 열의 아래에서 위로 손님이 차다가 해당 열이 가득 차면 다음 열의 아래에서부터 같은 방식으로 방이 배정된다.
풀이는 다음과 같다.
#include <stdio.h> int get_room(int height, int width, int num){ int room_num, floor, result; room_num = num/height; // 방의 순번(호실 번호의 뒷자리) floor = num%height; // 방의 층 높이(호실 번호의 앞자리) if(num%height) room_num += 1; // 꼭대기 층 아래 층의 방 순번 else floor = height; // 꼭대기 층의 방 층 높이 result = floor*100+room_num; // 방 번호 return result; } int main(){ int test_case; int height, width, num; scanf("%d", &test_case); for(int i=0;i<test_case;i++){ scanf("%d %d %d", &height, &width, &num); printf("%d\n", get_room(height, width, num)); } return 0; }
정수의 몫 연산, 나머지 연산을 얼마나 잘 활용하는지 보는 문제 같다.
근데 가만 보니 width는 계산에 한 번도 들어간 적이 없다.
'Problem Solving' 카테고리의 다른 글
[백준/C] 1157번 (0) 2022.07.13 [백준/C] 2839번 - 설탕 배달 (0) 2022.05.14 [백준/C] 2869번 - 달팽이는 올라가고 싶다 (0) 2022.05.12 [백준/C] 1193번 - 분수 찾기 (0) 2022.05.12 [백준/C] 3052번 - 나머지 (0) 2022.04.25