정사각형으로 만들기

민태영·2023년 7월 5일
0
post-thumbnail

문제) 이차원 정수 배열 arr이 매개변수로 주어집니다. arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.

나의 풀이

  1. row와 colum에 각각 배열의 행과 열을 저장한다.

  2. if문으로 행과 열 중 어느 쪽이 큰지 판단한다.

2-1 열이 작은 경우

  • 이중 for문으로 각 행에 행 - 열을 뺀 값만큼 숫자 0을 채운다

2-2 행이 작은 경우

  • 열에서 행을 뺀 값 만큼 for문을 돌며 arr에 Array(colum).fill(0)로 열만큼 0이 채워진 행을 arr에 push한다.
function solution(paramArr) {
    let arr = paramArr;
    const row = arr.length
    const colum = arr[0].length
    
//    열이 부족한 경우
    if(row > colum) {
        const diff = row - colum 
        for(let idx1 = 0; idx1 < arr.length; idx1++) {
            for(let idx2 = 0; idx2 < diff; idx2++) {
                arr[idx1].push(0)
            }
        }
    } else {
//    행이 부족한 경우
        const diff = colum - row
        for(let idx = 0; idx < diff; idx++) {
            arr.push(Array(colum).fill(0))
            
        }
    }
    return arr;
}
profile
꿈을 꾸는 개발자

0개의 댓글