본문 바로가기
알고리즘/프로그래머스 PS

[프로그래머스][Level 1][Python] 행렬의 덧셈

by 빛밤하늘 2021. 7. 25.
반응형

밑의 링크는 프로그래머스에서의 문제 링크입니다.

 

코딩테스트 연습 - 행렬의 덧셈

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

programmers.co.kr

 

 

 

 

 

 

 

 

생각한 풀이 과정

  1. 행렬의 덧셈은 두 행렬의 행과 열의 크기가 무조건 같기 때문에 크기를 생각할 때 한 행렬의 크기만 생각해도 됩니다.
  2. 행렬의 덧셈 결과를 저장할 리스트 변수를 하나 만들어줍니다.
  3. 행렬의 원소 하나씩 접근하기 위해 arr1과 arr2 내부에서 먼저 한 행에 접근하고 또 그 내부에서 한 원소씩 접근해봅니다. 이중 반복문을 사용해봅니다.
  4. 하나의 행을 의미하는 리스트를 만들고, 현재 행에서 arr1과 arr2의 각 원소를 더하면 앞서 만든 행 리스트에 넣어줍니다.
  5. 현재 행에서 모든 각 원소의 덧셈을 구했으면 현재 행 리스트 자체를 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

 

 

 

제출 결과

결과

 

 

 

 

 

 

 

 

느낀 점

저는 왜 이렇게 항상 행과 열이 헷갈리는지 모르겠습니다.

스스로에게 짜증이 나네요.

 

 

 

※ 궁금한 부분, 이상한 점 및 오타는 댓글에 부탁드립니다.

※ 더 효율적이고 빠른 정답을 환영합니다.

반응형

댓글