본문 바로가기
📖 Coding Test/Programmers LV.1

[프로그래머스 LV.1] 행렬의 덧셈

by hyebin (Helia) 2023. 2. 14.
프로그래머스 LV.1 모음

행렬의 덧셈

문제 설명

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

제한 사항

  • 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.

입출력 예

arr1 arr2 return
[[1,2],[2,3]] [[3,4],[5,6]] [[4,6],[7,9]]
[[1],[2]] [[3],[4]] [[4],[6]]

제출

func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
    var sum: [[Int]] = Array(repeating: Array(repeating: 0,count:arr1[0].count), count: arr1.count)
    for i in 0..<arr1.count{
        for j in 0..<arr1[i].count{
            sum[i][j] = arr1[i][j] + arr2[i][j]
        }
    }
    return sum
}
arr1과 동일한 크기의 배열 sum을 생성한 뒤, arr1과 arr2의 각 행과 열의 합을 저장한다.

다른 풀이

import Foundation

func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
    return zip(arr1, arr2).map{zip($0,$1).map{$0+$1}}
}
zip 함수를 사용해 두 배열을 각 행과 열의 합으로 합친다.
반응형

댓글