Algorithm/프로그래머스/0/181830. 정사각형으로 만들기/정사각형으로 만들기.js at main · minhulee/Algorithm
직접 순회하며 길이 구하기
for, forEach, map 등을 사용해 배열의 각 요소 길이를 하나씩 확인하는 방법
→ 간단하지만 코드가 다소 반복적일 수 있음
배열로 변환 후 비교하기
arr.map(e => e.length) 등으로 요소들의 길이 배열을 만들어서 Math.max 등으로 한 번에 최댓값 찾기
→ 가독성 좋고, 내장 함수를 활용해 효율적이며 코드가 간결해짐
fill() 메서드의 특수성fill() 메서드는 인자로 받은 값을 배열의 모든 요소에 "얕게 복사"
→ 원시 타입(숫자, 문자열 등)은 값 복사라 안전함
→ 참조 타입(객체, 배열 등)은 동일한 참조를 여러 요소가 공유함 → 주의 필요
문제점
new Array(n).fill(new Array(m).fill(0)) 같이 작성하면,
모든 행이 같은 배열 객체를 참조해 한 행을 바꾸면 전부 바뀌는 부작용 발생
해결법
Array.from({ length: n }, () => new Array(m).fill(0))처럼
생성함수를 통해 매번 새 배열을 만들어 넣으면 각 요소가 독립된 참조를 가짐 → 부작용 방지
{ length: n }를 Array.from()에 사용하는 이유{ length: n }는 배열 길이만 가진 유사 배열 객체로서,
Array.from()에 넣으면 길이 n인 배열을 쉽게 생성 가능
이런 방식은
new Array(n) 처럼 빈 슬롯이 아니라map 함수와 함께 사용해 원하는 값으로 초기화 가능해 가독성 높고 직관적임