본문 바로가기

프로그래밍_백준/C++

(C++) 백준 10250번 ACM호텔 [이중포인터, 2차원동적배열] 활용

728x90
반응형

 

백준 10250번 문제는 ACM호텔 문제입니다!

먼저 1호 라인을 채워준 후 2호..3호..순으로 채워주는 문제입니다

저는 이 문제를 이중포인터를 활용해서 2차원 동적배열로 만들고

각 배열마다 호수를 넣어줬어요!

그리고 순서에 맞는 호수를 출력하는 방식으로 해결했습니다!

 

#include<iostream>
using namespace std;

int main() 
{
	int t, h, w, n, a=100, x=-1, y=0;//t는 반복 횟수, h는 층수, w는 호수, n은 순서, x, y는 배정 호수의 좌표입니다!
	cin >> t;
    cin.ignore();

    for (int i = 0; i < t; i++) {
        cin >> h >> w >> n;
        cin.ignore();

        int** arr = new int* [h];
        for (int i = 0; i < h; i++) {
            arr[i] = new int[w];
        }//2차원 배열 선언

        for (int i = 0; i < h; i++) {
            for (int j = 0; j < w; j++) {
                arr[i][j] = a * (i + 1) + (j + 1);
            }//2차원 배열에 각 호수 대입
        }

        for (int j = 0; j < n; j++) {
            x++;
            if (x == h) {
                y++;
                x = 0;
            }
        }//1호를 먼저 배정한 후 2호라인 배정 
        
        cout << arr[x][y] << endl;
        x = -1;
        y = 0;
        
        for (int i = 0; i < h; i++) {
            delete[] arr[i];
        }//2차원 배열 해제

        delete[] arr;//2차원 배열 해제
    }
    return 0;
}
728x90
반응형