Where who wants to meet someone

행렬의 덧셈 본문

프로그래머스 알고리즘 문제 기록/Lv. 1

행렬의 덧셈

Lust3r 2024. 5. 19. 11:10
728x90

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
    var result = 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 {
            result[i][j] = arr1[i][j] + arr2[i][j]
        }
    }

    return result
}

- 각 행과 열의 항목을 더한 배열을 반환하는 방법을 사용했다.

 

// 풀이 1
import Foundation

func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
    return zip(arr1, arr2).map{zip($0,$1).map{$0+$1}}
}

// 풀이 2
func solution(_ arr1:[[Int]], _ arr2:[[Int]]) -> [[Int]] {
    var arr: [[Int]] = []

    for n in 0..<arr1.count {
        var temp:[Int] = []
        for m in 0..<arr1[n].count {
            temp.append(arr1[n][m] + arr2[n][m])
        }
        arr.append(temp)
    }

    return arr
}

- zip을 사용해보려 했지만 단순히 배열을 합치는 정도여서 반복문을 사용했는데, 풀이 1과 같은 방법으로 사용하면 됨을 알 수 있었다.

 

점수: +1

'프로그래머스 알고리즘 문제 기록 > Lv. 1' 카테고리의 다른 글

3진법 뒤집기  (0) 2024.05.25
직사각형 별찍기  (0) 2024.05.19
문자열 다루기 기본  (0) 2024.05.16
부족한 금액 계산하기  (0) 2024.05.16
문자열 내림차순으로 배치하기  (0) 2024.05.16