반응형
밑의 링크는 프로그래머스에서의 문제 링크입니다.
생각한 풀이 과정
- 행렬의 덧셈은 두 행렬의 행과 열의 크기가 무조건 같기 때문에 크기를 생각할 때 한 행렬의 크기만 생각해도 됩니다.
- 행렬의 덧셈 결과를 저장할 리스트 변수를 하나 만들어줍니다.
- 행렬의 원소 하나씩 접근하기 위해 arr1과 arr2 내부에서 먼저 한 행에 접근하고 또 그 내부에서 한 원소씩 접근해봅니다. 이중 반복문을 사용해봅니다.
- 하나의 행을 의미하는 리스트를 만들고, 현재 행에서 arr1과 arr2의 각 원소를 더하면 앞서 만든 행 리스트에 넣어줍니다.
- 현재 행에서 모든 각 원소의 덧셈을 구했으면 현재 행 리스트 자체를 2번 과정에서 만든 리스트 변수에 넣어주고, 다음 행도 똑같이 반복해봅니다.
주의해야 할 점
저처럼 행과 열 개념이 헷갈리는 분들은 틀리기 쉽습니다.
개념을 탄탄히 공부합시다.
제출한 파이썬 코드
# 2개의 행렬 arr1, arr2가 매개변수로 주어집니다.
def solution(arr1, arr2):
# 두 행렬 arr1과 arr2의 덧셈 결과를 저장할 변수를 선언합니다.
answer = []
# 행렬에서 열의 길이를 저장하는 변수를 선언합니다.
col_len = len(arr1)
# 행렬에서 행의 길이를 저장하는 변수를 선언합니다.
row_len = len(arr1[0])
# 열의 길이만큼 반복합니다.
for i in range(col_len):
# 현재 열 인덱스에서 행의 덧셈 결과를 저장할 리스트 변수를 선언합니다.
answer_row = []
# 현재 열에서 행의 길이만큼 반복합니다.
for j in range(row_len):
# 현재 행, 열의 인덱스에서의 arr1과 arr2의 원소의 덧셈을 구하고 answer_row에 넣어줍니다.
answer_row.append(arr1[i][j] + arr2[i][j])
# 한 행의 덧셈이 끝나면 행 자체를 answer에 넣어줍니다.
answer.append(answer_row)
# 행렬의 덧셈 결과를 반환합니다.
return answer
제출 결과
느낀 점
저는 왜 이렇게 항상 행과 열이 헷갈리는지 모르겠습니다.
스스로에게 짜증이 나네요.
※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.
※ 더 효율적이고 빠른 정답을 환영합니다.
반응형
댓글