문제) 행렬의 덧셈
코딩테스트 연습 - 행렬의 덧셈
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요
programmers.co.kr
- 내 풀이
def solution(arr1,arr2):
answer=[]
for i in range(len(arr1)):
ans=[arr1[i][j]+arr2[i][j] for j in range(len(arr1[0]))]
answer.append(ans)
return answer
- 생각보다 오래걸림...
- 주의해야할 점
ans=[arr1[i][j]+arr2[i][j] for j in range(len(arr1[0]))]
: 첫 번째 for문이 도는 동안 나오는 모든 값을 하나의 리스트에 함께 넣음
#주의 사항
for i in range(len(arr1)):
for j in range(len(arr1[0])):
ans=[arr1[i][j]+arr2[i][j]]
#for문 두줄 쓰는 것과 위 코드는 다르다
#결과가 모두 따로따로 리스트로 만들어짐
- 결과
print(solution([[1,2],[3,4]],[[3,4],[5,6]]))
#결과
[[4,6],[8,10]]
- 다른 사람 풀이 1
def solution(arr1,arr2):
answer=[[arr1[i][j]+ arr2[i][j] for j in range(len(arr1[0]))] for i in range(len(arr1))]
return answer
print(solution([[1,2],[3,4]],[[3,4],[5,6]]))
- 내 코드와 유사
- 밖으로 따로 썼던 for문까지 한줄에 합치는 코드
- 하나의 리스트에 for문 하나씩
- 다른 사람 풀이 2
def solution(arr1,arr2):
answer=[[c+d for c,d in zip(a,b)] for a,b in zip(arr1,arr2)]
return answer
print(solution([[1,2],[3,4]],[[3,4],[5,6]]))
- zip() 함수 사용
zip()함수 개념
[Python] 내장 함수 zip()
zip() 함수 : 두 그룹의 데이터를 엮어주는 파이썬 내장 함수 zip(A,B,C) 여러 개의 순회 가능한(iterable) 객체를 인자로 받음 각 객체가 담고 있는 데이터를 하나씩 차례로 짝지어 튜플의 형태로 반
yygs321.tistory.com
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] 하샤드 수 (0) | 2022.02.06 |
|---|---|
| [프로그래머스] [Level 1] 핸드폰 번호 가리기 (0) | 2022.02.06 |
| [프로그래머스] [Level 1] x만큼 간격이 있는 n개의 숫자 (0) | 2022.02.05 |
| [프로그래머스] [Level 1] 직사각형 별 찍기 (0) | 2022.02.05 |
| [프로그래머스] [Level 1] 신고 결과 받기 (0) | 2022.02.03 |