문제 설명
이차원 정수 배열 arr이 매개변수로 주어집니다. arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.
문제 풀이
function solution(arr) {
for (let i = 0; i < arr.length; i++) {
if (arr.length === arr[i].length) {
return arr;
}
if (arr.length > arr[i].length) {
while (arr[i].length < arr.length) {
arr[i].push(0);
}
}
if (arr[i].length > arr.length) {
while (arr.length < arr[i].length) {
arr.push(new Array(arr[i].length).fill(0));
}
}
}
return arr;
}
- arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고,
- 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return
조건을 3개로 나누었다.
- 이차원 배열에서 arr이라는 큰 배열과 그 안의 작은 배열의 길이가 같다면 바로 리턴해서 다른 소모값 없게 리턴.
- 큰 배열과 작은 배열 중 길이가 더 긴 쪽의 기준대로 문제설명처럼 0을 추가하거나
- 0이 채워져있는 배열을 채우도록 해서 리턴.
코멘트
기초 문제를 풀어놓고 코테 실력이 늘었다고 생각하지는 않지만 그래도 나름대로 불필요한 동작 없이 작동시키려 노력하는데서 조금 발전했다는 생각은 든다. 확실히 이번 문제처럼 어떻게 해야겠다는 플랜이 생기면 그대로 막힘없이 쭉 잘 풀긴 하는데, 아직은 막히고 오래걸릴 때가 많다. 알고리즘을 익히고 여러 코테 유형을 풀어봐야 할 것 같다.
728x90
'개발 > 코딩테스트' 카테고리의 다른 글
[CTF | JavaScript] segfault practice - Pin Code Crack (0) | 2024.05.16 |
---|---|
[프로그래머스 | JavaScript] 문자열 겹쳐쓰기 (0) | 2023.11.07 |
[프로그래머스 | JavaScript] 그림 확대 (0) | 2023.09.18 |
[프로그래머스 | JavaScript] 코드 처리하기 (0) | 2023.09.12 |
[프로그래머스 | JavaScript] 전국 대회 선발 고사 (0) | 2023.09.11 |