[C++] 백준 10250 : ACM 호텔

#include <iostream>

int main(int argc, char **argv){
    int T, H, W, N, cnt = 0;
    int hotel[101][101] = {0};
    scanf("%d",&T);

    for(int i=0; i<T; i++){
        scanf("%d %d %d",&H,&W,&N);
        for(int j=1; j<=W; j++){ // for문 2개 돌리기보다 h1 = n % h / w1 = n / h 쓰는게
            for(int k=1; k<=H; k++){
                hotel[k][j] = 1;
                cnt++;
                if(cnt == N){
                    if(j < 10){
                        printf("%d0%d\n", k, j);
                    } else {
                        printf("%d%d\n", k, j);
                    }
                    
                    break;
                }
            }
        }
        cnt = 0;
    }

    return 0;
}

오늘의 키포인트

  • 무조건 낮은층, 1호실부터 찬다. 세로로 ||||| 이런식으로 왼쪽부터
  • 나는 이중 for문을 사용했지만 수학적으로 접근하는게 더 좋아보인다. 왼쪽부터 차는 성질때문에 층수로 나눈 나머지가 층수가 되고, 층수로 나눴을 때의 몫이 호수가 된다. 왜 이렇게 수학적으로 안풀고 그냥 구현만 바로 해버리는지... 나쁜 버릇이다. 고쳐야만.

좋은 웹페이지 즐겨찾기