코딩테스트

[Swift 알고리즘] 프로그래머스(Lv.1) - 행렬의 덧셈

유정주 2022. 2. 27. 20:09
반응형

안녕하세요. 개발 중인 정주입니다.

 

오늘은 프로그래머스 - 행렬의 덧셈 문제를 풀었습니다.

 


목차


    Github

     

    GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘

    스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.

    github.com

     

    문제 링크

    https://programmers.co.kr/learn/courses/30/lessons/12950

     

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

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

    programmers.co.kr

     


    풀이

    두 행렬의 덧셈을 구하는 문제입니다.

     

    2차원 배열 말고 다른 방법이 있는지 고민하다 잘 모르겠어서 2차원 배열에 append를 해줘서 해결했는데요.

    다른 사람의 답 중 zip과 map의 중첩을 통해 해결한 답안이 있었습니다.

    다만 아직 제 실력이 모자른 건지 잘 이해가 안 가더라고요. 다음에 다시 봐야겠습니다.

     

    이번 문제에서는 append()의 편리성(?)을 다시 한 번 배웠습니다.

    대입 연산자(=)를 이용해서 값을 넣으려면 미리 배열의 size에 맞춰 배열을 선언해야 하는데요.

    append()를 사용하면 미리 size를 안 넣어도 됩니다.

    그래서 이번에도 append()를 사용했습니다.

     


    전체 코드

    func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
        var result: [[Int]] = []
        
        for i in (0..<arr1.count) {
            var temp: [Int] = []
            for j in (0..<arr1[i].count) {
                temp.append(arr1[i][j] + arr2[i][j])
            }
            result.append(temp)
        }
        
        return result
    }

    아직은 초보 개발자입니다.

    더 효율적인 코드 훈수 환영합니다!

    공감 댓글 부탁드립니다.

     

     

    반응형