728x90

문제 설명

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

제한 조건
  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
입출력 예arr1arr2return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

 

<풀이>

def solution(arr1, arr2):
    for i in range(len(arr1)):
        for j in range(len(arr1[i])):
            arr1[i][j] += arr2[i][j]
    return arr1
def solution(arr1, arr2):

문제에서 원하는 결과를 넘겨주는 solution 함수를 만들어야 한다. 리스트 두 개가 주어지고 각 리스트의 같은 번쨰 수를 더한 리스트를 출력해 주면 된다.

for i in range(len(arr1)):

일단 반복해서 더해줘야 한다는 개념을 생각하면 for문을 사용하게 된다. for문을 통해 처음 받은 리스트의 길이만큼 반복을 실행해 준다. 2중 리스트를 쓰고 있으므로 리스트 안에 리스트가 몇 개가 있는지 확인하고 그 수 만큼 반복하는 것이다.

for j in range(len(arr[i])):

2중 리스트에서 2번째 리스트 값 만큼 반복을 해주기 위해 for 문을 만들어 준다.

arr1[i][j] += arr2[i][j]

각 자리수 별로 더해주고

return arr1

리턴을 해주면 끝이다.

프로그래머스에서는 answer로 리턴을 해줘야 하니까 answer에 담아서 제출하면 된다.

이해가 잘 가지 않는다면 아래 코드를 참고하자

def solution(arr1, arr2):

    for i in range(len(arr1)):
        print(i, ' i값')

        for j in range(len(arr1[i])):
            print(j, ' j값')
            arr1[i][j] += arr2[i][j]

    return arr1

print(solution([[1,2],[2,3]],[[3,4],[5,6]]))

이해를 돕기 위한 코드

0  i값
0  j값
1  j값
1  i값
0  j값
1  j값
[[4, 6], [7, 9]]

이해를 돕기 위한 코드의 출력값

728x90

+ Recent posts