Notice
Recent Posts
Recent Comments
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

Día de Ruru

20230215 TIL 본문

항해99/TIL

20230215 TIL

공대루루 2023. 2. 16. 02:32

코딩 테스트 풀이

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.

입력 예 [[1,2],[2,3]] [[3,4],[5,6]]
출력 예 [[4,6],[7,9]]

문제 점

값이 배열안에 배열로 들어가있어서 바로 추출해서 사용할 수가 없다. 배열이 [[1,2],[2,3]] 에서 1이라는 숫자를 가져오려면 배열이름[0][0]을 해야한다. 이걸 for 반복문을 두번을 돌려서 뽑아낼 수 있을것같다. 그런데..? 이중for반복구문을 쓰면 되는거 같은데 뭔가 값이 이상하게 들어간다,

해결 방안

안쪽에 있는 for반복문은 [[1,2],[2,3]]에서 [1,2]부분을 돌려야 하기 때문에 안쪽에 있는 배열의 개수만큼 for 문을 돌려야하고 배열에 넣을 때도 answer[i]번째에 넣어야 한다.

answer[i] = []; //answer의 i번째에 빈 배열을 하나 넣는다
for (let j = 0;j<arr1[i].length;j++){
}

알아야할 것

배열의 위치를 잘 생각해보고 for반복문을 돌려야 한다. 배열안에 배열이 있기 때문에 전체 배열의 갯수와 그 안에 있는 배열의 갯수가 다른 경우를 생각해야 한다.

또 다른 해결법

let answer = arr1.map((elem,index)=>elem.map((el,idx)=>el+arr2[index][idx]))

이건 팀원분의 코드인데 뭔가 훨씬 깔끔한거같다. map() 을 사용해서 더해주는 것과 동시에 바로 배열에 처리해줄 수 있다. 원리는 똑같지만 한줄로 가능하다는게 엄청나다 뭔가..

코딩테스트 문제 푸는게 아직 확확 머리에서 잘 안돌아간다... 이러다가 월요일에 알고리즘 테스트 떨어지는거 아냐??ㅠㅠㅠ 나는 바보니까 오늘 풀었던 문제 싹 복습한번했다 안다고 생각하는것도 한번이라도 더 봐야 내꺼로 만들고 다음에 내가 활용할 수 있다!!!!!! 이건 python 공부할때도 뼈져리게 느꼈잖아.. 힘내자 화이팅 바보라도 남들보다 10번만 더 보면 더 잘할 수 있다

'항해99 > TIL' 카테고리의 다른 글

20230218 TIL  (0) 2023.02.18
20230217 TIL  (0) 2023.02.18
20230214 TIL  (0) 2023.02.15
20230213 TIL  (0) 2023.02.13
2023.02.10 TIL  (0) 2023.02.12
Comments