백준 10250번 - ACM호텔 c언어

김대일·2021년 5월 7일
0

건물의 높이와 길이가 주어졌을때 N번째 손님에게 주어지는 방은 몇호인지 찾아내는 프로그램.

접근방법

  • 손님들 방은 가로부터 채워지지 않고 1층부터 위로 채워진다
  • 예를들어 6층 건물이면 101~601호먼저 채우고 그 다음 102호부터 602호 채우는 방식
  • 몇번째 손님인지에 따라 건물의 층수만큼 뺴주고 오른쪽으로 한칸씩 이동할때 마다 호수에서 +1을 해주는 방식으로 접근해봤다.
#include <stdio.h>
 
int main(){

	int t, h, w, n;  // t는 손님이 몇명인지,h는 높이, w는 길이, n은 몇번째 손님인지
	int count;    // 몇호인지 체크할 변수
	scanf("%d", &t);

	for (int i = 0; i < t; i++) {
    count = 1;    //  방은 1호부터 시작하니 1로 선언해주었다.
		scanf("%d %d %d", &h, &w, &n);
		while (n > h) {    // 손님의 번호에서 건물의 높이만큼 빼주는 반복문 
			n -= h;       
			count++;
            
            // 높이가 정해져있고 일정한 규칙이 있는 건물에서 몇번째 손님인지에 따라 건물의 높이만큼 빼주고 오른쪽으로 이동할때마다 호수에서 +1을 해주었다. 
		}
		printf("%d%02d\n", n, count);   // %02d로 출력은 앞에 두칸이 비었을경우 00으로 출력하라는 의미이다. 
	}


	return 0; 
}

느낀점

말로 너무 길게 설명해놔서 처음엔 거부감이 들었다. 하지만 규칙은 꽤나 간단했다. 일정한 규칙을 잘 찾아내는 연습을 해야겠다.

profile
도비코딩

0개의 댓글