문제
https://school.programmers.co.kr/learn/courses/30/lessons/181830
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
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 |