본문 바로가기
프로그래머스 Algorithm

[프로그래머스] 행렬의 덧셈 Kotlin

by Echung 2023. 11. 27.

안녕하세요. 이번에는 프로그래머스 행렬의 덧셈 문제를 풀어보려고 합니다.

 

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

 

프로그래머스

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

programmers.co.kr


Problem

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

 

[제한 사항]

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

사진 1. 입출력 예


Solution

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
         var answer = Array<IntArray>(arr1.size){ IntArray(arr1[0].size){ 0 } }
        
         for(i in 0 until arr1.size) {
             for(j in 0 until arr1[0].size) {
                 answer[i][j] = arr1[i][j] + arr2[i][j]
             }
         }
        
         return answer
    }
}

 이번 문제는 이중 for문으로 문제를 접근해 보았습니다. answer를 2차원 배열로 만든 후 각 자릿수에 맞게 for문으로 루프를 돌아가는 방법으로 풀어보았습니다.

 

1. 다른 사람 코드

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
        return Array<IntArray>(arr1.size){
            i -> IntArray(arr1[0].size) {
                j -> arr1[i][j] + arr2[i][j]
            }
        }
    }
}

  저의 코드와 다르게 한 줄로 코드를 작성한 분이 있어서 공부용으로 첨부해 봅니다. 이번에는 저랑 비슷하게 접근을 하였지만 처음부터 초기값을 행렬의 덧셈을 넣는 방식으로 동작을 하도록 구성해져 있었습니다. 확실히 코드의 양이나 가독성 면에서 좀 더 나은 것 같습니다.


Performance

1. 내가 작성한 코드 2. 다른 사람 코드
반응형