정사각형으로 만들기

Subin·2024년 9월 9일

Algorithm

목록 보기
29/69

[내 풀이]

#include <string>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr) {
    
    if(arr.size() > arr[0].size()) // 행 > 열
    {   
        while(arr.size() != arr[0].size())
        {
            for(auto& c: arr)
                c.push_back(0);
        }
    }
    else if(arr.size() < arr[0].size()) // 행 < 열
    {
        while(arr.size() != arr[0].size())
        {
            arr.push_back(vector<int>(arr[0].size(), 0));
        }
    }
    
    return arr;
}

[다른 사람 풀이]

#include <cmath>
#include <vector>

using namespace std;

vector<vector<int>> solution(vector<vector<int>> arr)
{
    vector<vector<int>> answer;

    int size=max(arr.size(), arr[0].size()); 
    vector<vector<int>> temp(size, vector<int>(size, 0));
    for(int i=0; i<arr.size(); i++)
        for(int j=0; j<arr[i].size(); j++)
            temp[i][j]=arr[i][j];
    answer=temp;

    return answer;
}

max 함수로 가장 큰 사이즈를 구해서
결국 정사각형을 만드는 것이므로 그 크기만큼 벡터 크기를 초기화해주고
그 안에 반복문 사용해서 arr값을 answer로 옮김 (남은 부분은 다 0이 되는 것)

profile
성장하며 꿈꾸는 삶을 살아가고 있는 대학생입니다😊

0개의 댓글