안녕하세요. 이번에는 프로그래머스 행렬의 덧셈 문제를 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12933
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Problem
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해 주세요.
[제한 사항]
○ 행렬 arr1, arr2의 행과 열의 길이는 500을 넘지 않습니다.
![](https://blog.kakaocdn.net/dn/K2KRv/btsAXe91A9Z/lUu3ZjMxtgvTxbF4KgRUsK/img.png)
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. 다른 사람 코드 |
![]() |
![]() |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 부족한 금액 계산하기 Kotlin (0) | 2023.11.29 |
---|---|
[프로그래머스] 최댓값과 최솟값 Kotlin (0) | 2023.11.28 |
[프로그래머스] 문자열 내림차순으로 배치하기 Kotlin (0) | 2023.11.26 |
[프로그래머스] 약수의 개수와 덧셈 Kotlin (4) | 2023.11.25 |
[프로그래머스] 내적 Kotlin (2) | 2023.11.24 |