📕 문제 설명
이차원 정수 배열 arr이 매개변수로 주어집니다. arr의 행의 수가 더 많다면 열의 수가 행의 수와 같아지도록 각 행의 끝에 0을 추가하고, 열의 수가 더 많다면 행의 수가 열의 수와 같아지도록 각 열의 끝에 0을 추가한 이차원 배열을 return 하는 solution 함수를 작성해 주세요.
⭐ 제한사항
- 1 ≤ arr의 길이 ≤ 100
- 1 ≤ arr의 원소의 길이 ≤ 100
- arr의 모든 원소의 길이는 같습니다.
- 1 ≤ arr의 원소의 원소 ≤ 1,000
💻 입출력 예
| arr | result |
| [[572, 22, 37], [287, 726, 384], [85, 137, 292], [487, 13, 876]] | [[572, 22, 37, 0], [287, 726, 384, 0], [85, 137, 292, 0], [487, 13, 876, 0]] |
| [[57, 192, 534, 2], [9, 345, 192, 999]] | [[57, 192, 534, 2], [9, 345, 192, 999], [0, 0, 0, 0], [0, 0, 0, 0]] |
| [[1, 2], [3, 4]] | [[1, 2], [3, 4]] |
📚 입출력 예 설명
입출력 예 #1
- 예제 1번의 arr은 행의 수가 4, 열의 수가 3입니다. 행의 수가 더 많으므로 열의 수를 4로 만들기 위해 arr의 각 행의 끝에 0을 추가한 이차원 배열 [[572, 22, 37, 0], [287, 726, 384, 0], [85, 137, 292, 0], [487, 13, 876, 0]]를 return 합니다.
입출력 예 #2
- 예제 2번의 arr은 행의 수가 2, 열의 수가 4입니다. 열의 수가 더 많으므로 행의 수를 4로 만들기 위해 arr의 각 열의 끝에 0을 추가한 이차원 배열 [[57, 192, 534, 2], [9, 345, 192, 999], [0, 0, 0, 0], [0, 0, 0, 0]]을 return 합니다.
입출력 예 #3
- 예제 3번의 arr은 행의 수와 열의 수가 2로 같습니다. 따라서 0을 추가하지 않고 [[1, 2], [3, 4]]을 return 합니다.
😊 나의 답변
function solution(arr) {
const row = arr.length;
const col = arr[0].length;
if(row > col) {
for(let i = col; i < row; i++) {
for(let j = 0; j < row; j++) {
arr[j].push(0);
}
}
} else if(row < col) {
for(let i = row; i < col; i++) {
arr.push(new Array(col).fill(0));
}
}
return arr;
}
처음에 정답 수월하게 작성하고, 쉽네~ 했는데 테스트케이스는 모두 맞았으나 제출 시 75.9점으로 실패했다.
반례도 테스트케이스에 추가해서 진행해봤으나 절대 정답이 나오지 않는 죽은 답안...
방법을 계속 찾다가 아예 지우고 새 마음으로 다시 작성하기... 🤦♀️
이차원 배열 문제는 많이 안풀어봐서 그런가, 중간중간 계속 포인트를 놓쳐 헤맸다.
또한 배열 메서드에 대한 이해가 부족하다는 생각이 들었다.
단순하게 행의 수가 더 많은가? 열의 수가 더 많은가? 조건으로 나누어 구분했고, 내부에서 for문을 통해 배열에 요소를 추가하는 방식으로 풀이해봤다.
행의 수가 열의 수보다 많으면 열에 0을 push해주고, 열의 수가 행의 수보다 많으면 행의 길이만큼의 배열을 new Araay()로 생성하여 fill()로 0을 채워주었다.
여러가지 방향으로 생각해볼 수 있는 문제였고, 메서드 사용법을 더욱 빠삭하게 공부해야겠다고 생각했다.
728x90
반응형
'프로그래머스 > Lv. 0 코딩 기초 트레이닝' 카테고리의 다른 글
| [프로그래머스] 코딩 기초 트레이닝 124문제 풀이 완료! (0) | 2023.08.09 |
|---|---|
| [프로그래머스] Lv.0 정수를 나선형으로 배치하기 / JS (0) | 2023.08.08 |
| [프로그래머스] Lv.0 그림 확대 / JS (0) | 2023.08.08 |
| [프로그래머스] Lv.0 두 수의 합 / JS (0) | 2023.08.07 |
| [프로그래머스] Lv.0 배열의 원소 삭제하기 / JS (0) | 2023.08.06 |