코딩테스트/프로그래머스

[kotlin] 프로그래머스 - 행렬의 덧셈 (1단계)

배똥회장 2022. 3. 29. 15:34
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

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

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

programmers.co.kr

 

 

 

 

 

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
        var answer = Array(arr1.size, {IntArray(arr1[0].size)});
        
        for (x in 0..arr1.size-1) {
            for (y in 0..arr1[x].size-1) {
                answer[x][y] = arr1[x][y] + arr2[x][y];
            }
        }
        return answer;
    }
}

 

테스트 1 통과 (0.02ms, 63.7MB)
테스트 2 통과 (0.04ms, 62.9MB)
테스트 3 통과 (0.11ms, 65.1MB)
테스트 4 통과 (0.08ms, 63.1MB)
테스트 5 통과 (0.05ms, 63.4MB)
테스트 6 통과 (0.08ms, 63.4MB)
테스트 7 통과 (0.02ms, 63.7MB)
테스트 8 통과 (0.06ms, 63.5MB)
테스트 9 통과 (0.41ms, 66MB)
테스트 10 통과 (0.34ms, 63.9MB)
테스트 11 통과 (0.13ms, 66.2MB)
테스트 12 통과 (0.16ms, 65.5MB)
테스트 13 통과 (0.13ms, 66.1MB)
테스트 14 통과 (0.16ms, 65.2MB)
테스트 15 통과 (0.19ms, 67.5MB)
테스트 16 통과 (0.16ms, 64.4MB)
테스트 17 통과 (4.38ms, 94.3MB)

 

 

 

 

 

Array 진짜 복잡하네..

2차원 배열을 선언하는 것도 자바와 달라서 어려웠다..

 

 

 

 

1차원 배열 선언은 Array(길이, {내용}) 이런 식으로 선언하는데,

2차원 배열 역시 이 모양을 그대로 사용한다.

그래서 Array(길이, {Array(길이, {내용})})으로 모양을 만들고,

자바는 길이 구할 때 length를 쓰지만 코틀린에서는 size를 쓴다.

그 외에는 비슷하고...

 

 

 

 

행렬의 덧셈은 똑같은 위치의 값들을 다 더하는 것이기 때문에 for문으로 구하면 된다.

 

 

 

 

 

728x90