문제
https://school.programmers.co.kr/learn/courses/30/lessons/181830
풀이
arr의 모든 원소의 길이는 같다는 조건이 있으므로 행과 열이 같은 경우에는 바로 리턴해서 빠져나온다.
그리고 같지 않은 경우에는 그만큼 0을 채워주고, 아예 원소가 없는 경우에는 0으로 다 채워서 넣어준다.
function solution(arr) {
//행, 열이 같은 경우
if (arr.length === arr[0].length) {
return arr;
}
//같지 않은 경우
const max = Math.max(arr.length, arr[0].length);
for (let i = 0; i < max; i++) {
if (arr[i] === undefined) {
arr[i] = new Array(max).fill(0);
} else if (arr[i].length < max) {
arr[i] = [...arr[i], ...new Array(max - arr[i].length).fill(0)];
}
}
return arr;
}
다른 풀이
반복문으로 max까지 돌면서 원소의 길이가 더 작다면 while문을 이용해 arr에 0을 추가한다.
function solution(arr) {
const max = Math.max(arr.length, arr[0].length);
for (let i = 0; i < max; i++) {
arr[i] = arr[i] || [];
while (arr[i].length < max) {
arr[i].push(0);
}
}
return arr;
}
'개발 > 알고리즘(코딩테스트)' 카테고리의 다른 글
프로그래머스, 자바스크립트) 문자열 겹쳐쓰기 (0) | 2024.03.04 |
---|---|
프로그래머스, 자바스크립트) 그림 확대 (0) | 2024.03.04 |
프로그래머스, 자바스크립트) 무작위로 K개의 수 뽑기 (0) | 2024.03.03 |
프로그래머스, 자바스크립트) 수열과 구간 쿼리 2 (0) | 2024.03.03 |
프로그래머스, 자바스크립트) 삼각형의 완성조건 (2) (0) | 2024.03.02 |