문제
이차원 배열 arr의 행과 열의 개수를 비교하여 행과 열의 수를 일치시켜 정사각형이 될 수 있게 각 위치에 0을 추가한 이차원 배열을 리턴하여라
나의 풀이
function solution(arr) {
var row = arr[0].length; //행
var col = arr.length; //열
if (col < row) {
for (let i = 0; i < row - col ; i++) {
var newRow = new Array(row).fill(0);
arr.push(newRow);
}
} else if (col > row) {
for (let i = 0; i < col; i++) {
while (arr[i].length < col) {
arr[i].push(0);
}
}
}
// return arr;
console.log(row , col);
}
- 행과 열의 갯수를 각각 변수에 담아 크기를 비교한다
- 행의 수가 더 크다면 행의 길이만큼 0을 담은 배열을 추가해야 한다
- for 문을 사용하여 행과 열의 차이만큼 루프를 돌려준다
- newRow : newArray()를 사용하여 새로운 배열을 만들고 row를 배열의 길이로 지정한다
- fill(0) : array 요소를 0으로 채운다
- 열의 수가 더 크다면 for문을 돌려 열의 개수만큼 루프시킨다
- 열의 수가 크면 0을 push.
그 외 풀이
function solution(arr) {
// n은 행과 열의 수 중 더 큰 값으로 설정됩니다.
const n = Math.max(arr.length, arr[0].length)
// 배열 arr의 각 행에 0을 추가하여 열 수를 맞춥니다.
for (let i=0; i<arr.length; i++){
while (arr[i].length < n){
arr[i].push(0)
}
}
// 배열 arr의 행 수를 맞추기 위해 0으로 채워진 행을 추가합니다.
while (arr.length < n) {
arr.push(Array(n).fill(0));
}
return arr;
}
맨위 기초 트레이닝.. 초보용 코테인것을 보고 너무너무 현타가 와버렸다
아니 어느때보다 생각할 게 많은 코드라 .. 아직 멀었구나 싶다
'기초다지기 > JS 코딩테스트' 카테고리의 다른 글
javascript 알파벳 배열을 사용해 만들수 있는 단어의 다른 배열 존재 여부 확인하기 (0) | 2023.10.27 |
---|---|
javascript 모든 단어의 첫 문자를 대문자로, 나머진 소문자로 변환하기 (1) | 2023.10.26 |
javascript 문자열로 된 숫자들의 최대값과 최소값 (1) | 2023.10.24 |
javascript 이차원배열의 덧셈 (0) | 2023.10.24 |
javascript 주어진 문자열 배열중 접두사 찾기 (1) | 2023.10.23 |