Lv1. 행렬의 덧셈

Hello·2022년 7월 12일
0

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

1. 풀이 설명

row -> col 순서로 2중 for문을 돌면서 입력받은 두 Array 합을 반환한다.

2. 나의 풀이

python

def solution(arr1, arr2):
    answer = []
    size_row = len(arr1)
    size_col = len(arr1[0])
    for i in range(size_row):
        answer_row = []
        for j in range(size_col):
            answer_row.append(arr1[i][j] + arr2[i][j])
        answer.append(answer_row)
    return answer

kotlin

fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
	val answer = Array(arr1.size) { intArrayOf() }
	for(i in arr1.indices) {
		val arr = IntArray(arr1[i].size)
        for(j in arr1[i].indices) {
			arr[j] = arr1[i][j] + arr2[i][j]
		}
		answer[i] = arr
	}
	return answer
}

3. 나의 풀이 2

python

def solution(arr1, arr2):
    for i in range(len(arr1)):
        for j in range(len(arr1[i])):
            arr1[i][j] += arr2[i][j]
    return arr1

kotlin

fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> =
	Array(arr1.size) { row ->
    	IntArray(arr1[0].size) { col ->
        	arr1[row][col] + arr2[row][col]
        }
    }

4. 배운점

  1. 2중 for 문으로 풀린 문제는 개선할 수 있는 부분이 있을 때가 많다.

  2. python: parameter로 받은 리스트를 직접 업데이트하여 반환할 수 있다.

    arr1[i][j] += arr2[i][j] 
    return arr1
  3. kotlin: 초기화 후 반환으로 풀이를 짧게 끝낼 수 있다.

    Array(size) { intArrayOf() }
    IntArray(size) { int }
profile
안녕하세요 :)

0개의 댓글