728x90
*문제 출처는 프로그래머스에 있습니다.
문제 제목: 행렬의 덧셈
문제 사이트: https://programmers.co.kr/learn/courses/30/lessons/12950
풀이
def solution(arr1, arr2):
answer = [[] for x in range(len(arr2))]
for i in range(len(arr1)): # 세로 크기
for j in range(len(arr1[i])): # 가로 크기
answer[i].append(arr1[i][j] + arr2[i][j])
return answer
처음 풀 때 중첩 for문을 이용하여 구현했는데,
j에서 리스트 범위에 벗어난다고 오류가 떴었다.
answer에도 해당 배열의 길이만큼 2차원배열을 만들어주지 않아서도 오류가 났었다,, ㅠㅠ
그 두가지 오류를 수정한 코드가 위의 코드이다.
다른 풀이
def sumMatrix(A,B):
answer = [[c + d for c, d in zip(a, b)] for a, b in zip(A,B)]
return answer
두번째 시도에서 뭔가 zip함수로 구현할 수 있을 거같다고 생각했는데 코드가 쉽게 짜지진 않았음
근데 위의 풀이처럼 구현하면 되는군.. 근데 아직 한줄 코딩은 너무 어려운거 같다 공부를 좀 해보자,,
https://dsbook.tistory.com/175를 참고하면 zip함수를 이용한 다른 풀이를 볼 수 있다.
728x90
'coding test - python > Programmers' 카테고리의 다른 글
Programmers / 이상한 문자 만들기 / Python (0) | 2022.04.01 |
---|---|
Programmers / 내적 / Python (0) | 2022.04.01 |
Programmers / 음양 더하기 / Python (0) | 2022.04.01 |
Programmers / 없는 숫자 더하기 / Python (0) | 2022.04.01 |
Programmers / 최대공약수와 최소공배수 찾기 / Python (0) | 2022.03.31 |