dolog

2024.03.21 배열 알고리즘 - 기초 본문

알고리즘

2024.03.21 배열 알고리즘 - 기초

dokite 2024. 3. 21. 14:23

1. 2차원 배열을 초기화 하고 요소를 넣을 때 주의

function solution(n) {
    // answer = [[]];로 초기화하면 에러가 난다.
    // 반드시 각 요소마다 초기화가 필요하다.
    let answer = [];
    
    for(let i = 0 ; i < n ; i++) {
    	answer.push([]);
    	for(let j = 0 ; j < n ; j++) {
            if(i === j) answer[i][j] = 1;
            answer[i][j] = 0;
        }
    }

	return answer;
}

위의 문제는 기초 문제라 간단하게 풀었지만 2차원 배열 관련 문제를 풀 때 new Array().fill() 이런 식으로 푸는 경우가 왕왕 있다.
아래 블로그를 요약하자면 얕은 복사로 값이 중복되는 newArray().fill()보다는 Array.from({ length: 5},  () => {})를 사용하는 게 낫다고 말하고 있다.

https://aeunhi99.tistory.com/257

 

[Js] 2차원 배열 new Array().fill()로 값 할당할 때 주의할 점

요새 프론트엔드가 js로 코딩테스트 보는게 많아져서 js로 여러 알고리즘 문제를 풀고있는데... 알고리즘 문제를 풀다보면 배열을 초기화 해놓고 그 배열을 이용하는 경우가 많다. 그래서 js도 배

aeunhi99.tistory.com

그리고 추가로 궁금해서 찾아본 결과 2차원 배열을 값을 넣지 않고는 처음부터 내부 배열을 초기화할 수 없다.

내부 배열이 초기화되지 않은 상태