Algorithm 문제풀이/Leetcode

(Easy - Array) Leetcode - 2022. Convert 1D Array Into 2D Array

j-engine 2024. 6. 18. 16:31

 

이 문제는 1차원 배열이 주어지면 2차원 배열로 바꾸는 문제입니다.

즉, 1차원 배열을 2차원 배열처럼 사용할 줄 알면 풀 수 있는 문제입니다.

 

1차원 배열을 2차원 처럼 사용하기 위한 개념

 

1D Array로 2D Array처럼 사용하기 위해서는 Index를 다음과 같이 사용하면 됩니다. 

어떤 2차원 index (x, y)의 1차원 index는 x + width * y"와 같습니다. (y * width + x)

vector<vector<int>> construct2DArray(vector<int>& original, int m, int n) {
        if (original.size() != m * n) // 두 크기가 같지 않으면 변환 불가
            return {};

        vector<vector<int>> ans(m, vector<int>(n, 0));

        for (int i = 0; i < m; i++) // row
            for (int j = 0; j < n; j++) // col
                ans[i][j] = original[i * n + j];

        return ans;
}