일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- class
- Promise Chaining
- props비구조화 할당
- probs
- flex-direction
- align-iitems
- display
- Math.floor()
- 다형성 (polymorphism)
- 재귀함수 탬플릿
- 상속 (inheritance)
- 문자열을 객체로 만드는법
- align-content
- async/await
- Promise all
- 조건문
- 첫번째 미니 프로잭트
- 재귀적으로 생각하기
- 얕은복사와 깊은 복사
- probs.children
- css 정리
- 캡슐화 (encapsulation)
- 화살표함수 기본 개념
- 추상화 (abstraction)
- 클래스 문법 구조
- string
- 참조자료형
- Instanc
- 객체지향 프로그래밍 특징
- justfiy-content
Archives
- Today
- Total
희락코딩
프로그래머스 1단계 - 행렬의 덧셈 본문
728x90
반응형
#문제
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.
#제한 사항
행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
#입출력예시
arr1 | arr2 | return |
[[1,2],[2,3]] | [[3,4],[5,6]] | [[4,6],[7,9]] |
[[1],[2]] | [[3],[4]] | [[4],[6]] |
# 문제 풀이 및 코드작성
이런문제를 손코딩으로 푸는 방법도 나쁘지 않다고 생각한다. 이중 반복을 써서 푼다고 가정하면 아래의 형태처럼 식을 적을 수 있다. (arr1=[[1,2],[2,3]], arr2 =[[3,4],[5,6]])
arr1[0][0] + arr2[0][0] = 1 + 3 = 4
arr1[0][1] + arr2[0][1] = 2 + 4 = 6
arr1[1][0] + arr2[1][0] = 2 + 5 = 7
arr1[1][1] + arr2[1][1] = 3 + 6 = 9
그래서 arr1의 길이만큼 전체적으로 반복문을 돌려주고 arr1[i][j] 값도 순회 하기위해 이중으로 돌려주면서 위의 규칙에 맞게 식을 적어주고 결과값을 담아준 변수를 답을 반환할 변수에 담아 주면 끝!!!
반복문으로 풀기
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function solution(arr1, arr2) {
var answer = [];
for(let i=0; i<arr1.length; i++){
let temp = [];
for(let j=0; j<arr1[i].length; j++){
temp.push(arr1[i][j] + arr2[i][j])
}
answer.push(temp)
}
return answer;
}
|
cs |
고차함수로 풀기
1
2
3
4
5
6
7
8
9
10
11
12
13
|
function solution(arr1, arr2) {
const answer = arr1.map((el, idx1) => {
return el.reduce((a, c, idx2) => {
a.push(c + arr2[idx1][idx2]);
return a;
}, []);
});
return answer;
}
// arr1을 기준으로 배열을 한번 순회, map의 idx를 활용해 arr2 접근
// 리듀스로 2차원 배열을 한번 더 돌면서 더해줌 reduce((a,c,idx),[])
|
cs |
728x90
반응형
'프로그래밍 > 코드 문제 풀이' 카테고리의 다른 글
프로그래머스 1단계 - 두 정수 사이의 합 (0) | 2021.06.25 |
---|---|
프로그래머스 1단계 - 약수의 합 (2) | 2021.06.24 |
프로그래머스 1단계 - 직사각형 별찍기 (0) | 2021.06.22 |
프로그래머스 1단계 - 콜라츠 추측 (0) | 2021.06.21 |
프로그래머스 1단계 - 하샤드 수 (0) | 2021.06.20 |
Comments