Día de Ruru
20230215 TIL 본문
코딩 테스트 풀이
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 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