[Kotlin] ํ–‰๋ ฌ์˜ ๋ง์…ˆ (ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜)
๋ฐ˜์‘ํ˜•

 

 

 

 

๋ฌธ์ œ

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

 

 

 

 


 

์ ‘๊ทผ

 

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {

        return (arr1.size).map{it -> (arr1[i].toInt() + arr2[i].toInt())}
        
    }
}
  • ์œ„์™€ ๊ฐ™์ด arr1.size ๋งŒํผ map์„ ์ด์šฉํ•ด ํ’€๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ ์•„์ง ์‚ฌ์šฉ๋ฒ•์ด ์ต์ˆ™์น˜ ์•Š์•„ ์ž˜ ์•ˆ ๋๋‹ค.
class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> =
            Array(arr1.size) { i -> 
                arr1[i] + arr2[i]
        }
}
  • ๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ํ–ˆ๋”๋‹ˆ ์ •๋‹ต๊ณผ ๋‹ฌ๋ž๋‹ค. arr1๊ณผ arr2๋Š” ์ผ์ฐจ์› ๋ฐฐ์—ด์ด ์•„๋‹ˆ๋ผ, ๋‹ค์ฐจ์› ๋ฐฐ์—ด์ด๋ผ๋Š” ๊ฑธ ๊นจ๋‹ฌ์•˜๋‹ค.
  • ์œ„์˜ ์ฝ”๋“œ๋Š” [[1,2],[2,3]] [[3,4],[5,6]] ์ž…๋ ฅ ์‹œ [[4,6],[7,9]]์ด ์•„๋‹ˆ๋ผ,  [[1,2,3,4],[2,3,5,6]] ์ด ์ถœ๋ ฅ๋œ๋‹ค.

 


 

์„ฑ๊ณต ์ฝ”๋“œ

 

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

 


 

์„ค๋ช…

 

  1. Array(arr1.size)
    arr1.size ๋งŒํผ์˜ Array๋ฅผ ๋งŒ๋“ ๋‹ค.
  2. Array(arr1.size) { i -> ... }
    ์ƒˆ๋กœ์šด 2์ฐจ์› ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” arr1์˜ ํ–‰์˜ ์ˆ˜์™€ ๋™์ผํ•˜๋‹ค.
    ๊ฐ๊ฐ์˜ ์—˜๋ฆฌ๋ฉ˜ํŠธ์— ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ธฐ ์œ„ํ•ด i -> ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  3. IntArray(arr1[0].size) { j -> ... }
    ๊ฐ ํ–‰์˜ ์›์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ํ–‰์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด ํ–‰์˜ ํฌ๊ธฐ๋Š” arr1์˜ ์—ด์˜ ์ˆ˜์™€ ๋™์ผํ•˜๋‹ค.
  4. arr1[i][j] + arr2[i][j]
    arr1๊ณผ arr2์˜ ๊ฐ™์€ ์œ„์น˜์— ์žˆ๋Š” ์›์†Œ๋ฅผ ๋”ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ์šด ํ–‰๋ ฌ์˜ ํ•ด๋‹น ์œ„์น˜์˜ ๊ฐ’์„ ๊ตฌํ•œ๋‹ค.
  5. ํ•ด๋‹น Array๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. 
  6. ๋‹ค๋งŒ ๊ถ๊ธˆํ•œ ์ ์€ ์ง€๊ธˆ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์ตœ๋Œ€ 2์ฐจ์› ๋ฐฐ์—ด์ด๋‹ˆ๊นŒ ์ด๋ ‡๊ฒŒ ํ’€๋ฆฌ๋Š”๋ฐ, ๋งŒ์•ฝ ๋” ๋ฐฐ์—ด์˜ ์ฐจ์›์ด ๋†’์•„์ง„๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

 


 

๋‹ค๋ฅธ ๋ฐฉ๋ฒ•

 

class Solution {
    fun solution(arr1: Array<IntArray>, arr2: Array<IntArray>): Array<IntArray> {
        return arr1.mapIndexed { i, e1 -> e1.mapIndexed { j, e2 -> e2 + arr2[i][j] }.toIntArray() }.toTypedArray()
    }
}
  • mapIndexed์™€ toTypedArray()๋ฅผ ์ด์šฉํ–ˆ๋‹ค.
  • arr1.mapIndexed { i, e1 -> ... }
    arr1์˜ ๊ฐ ํ–‰(e1)๊ณผ ํ•ด๋‹น ํ–‰์˜ ์ธ๋ฑ์Šค(i)์— ๋Œ€ํ•ด ๋งคํ•‘
  • e1.mapIndexed { j, e2 -> ... }
    ๊ฐ ํ–‰(e1)์˜ ์š”์†Œ(e2)์™€ ํ•ด๋‹น ์š”์†Œ์˜ ์ธ๋ฑ์Šค(j)์— ๋Œ€ํ•ด ๋งคํ•‘
  • e2 + arr2[i][j]
    ํ˜„์žฌ ์š”์†Œ(e2)์™€ arr2์˜ ๋™์ผํ•œ ์œ„์น˜์— ์žˆ๋Š” ์š”์†Œ๋ฅผ ๋”ํ•˜์—ฌ ์ƒˆ๋กœ์šด ์š”์†Œ ๊ฐ’์„ ์ƒ์„ฑ
  • .toIntArray()
    ์ƒˆ๋กœ์šด ํ–‰์„ IntArray๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ˜„์žฌ ํ–‰์˜ ๊ฐ’์„ ๊ฐฑ์‹ 
  • .toTypedArray()
    ๋ณ€ํ™˜๋œ ํ–‰๋“ค์„ ๋‹ค์‹œ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜

 

 

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T