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

 

 

 

๋ฌธ์ œ

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

 

 


 

์ ‘๊ทผ

 

  • 1. arr์—์„œ ์ œ์ผ ์ž‘์€ ์ˆ˜๋ฅผ ์ฐพ๊ณ  (null์ผ ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ .min() ๋ณด๋‹ค๋Š” .minOrNull() ์‚ฌ์šฉ) arr์—์„œ ์ œ๊ฑฐ
  • 2. arr๊ฐ€ ๋น„์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ arr ๋ฆฌํ„ด, arr๊ฐ€ ๋น„์—ˆ์„ ๊ฒฝ์šฐ [-1] ๋ฆฌํ„ด
class Solution {
    fun solution(arr: IntArray): IntArray {
        var answer:IntArray = arr - arr.minOrNull()
        if(answer.size == 1) return intArrayOf(-1) else return answer
    }
}
  • ์œ„ ์ˆ˜์‹์ฒ˜๋Ÿผ ๊ตฌ์ƒํ•˜์˜€๋Š”๋ฐ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋‹ค.
  • ' - '์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์—์„œ ๋‹ค๋ฅธ ๋ฐฐ์—ด์„ ๋นผ๋Š” ๊ฒƒ์€ ํ—ˆ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • ๋Œ€์‹ ์— filter()๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

 


 

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

 

class Solution {
    fun solution(arr: IntArray): IntArray {
        return if (arr.size == 1) intArrayOf(-1) 
        else arr.filter { it != arr.minOrNull() }.toIntArray()
    }
}

 


 

์„ค๋ช…

 

  1. if (arr.size == 1) intArrayOf(-1) else ...: 
    ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 1์ธ ๊ฒฝ์šฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค. ๋งŒ์•ฝ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 1์ด๋ฉด, ๋ฐฐ์—ด์—๋Š” ์ตœ์†Ÿ๊ฐ’๋งŒ ์กด์žฌํ•˜๋ฏ€๋กœ ๋ฐฐ์—ด์ด [-1]์ด ๋˜์–ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๋ถ€๋ถ„์€ ์‚ผํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ธธ์ด๊ฐ€ 1์ธ ๊ฒฝ์šฐ์—๋Š” -1์„ ํฌํ•จํ•œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  2. arr.filter { it != arr.minOrNull() }
    ๋ฐฐ์—ด์—์„œ ์ตœ์†Ÿ๊ฐ’์„ ์ œ์™ธํ•œ ์š”์†Œ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. filter() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋“ค๋งŒ์„ ์„ ํƒํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” ๋ฐฐ์—ด์˜ ์ตœ์†Ÿ๊ฐ’๊ณผ ๊ฐ™์ง€ ์•Š์€ ์š”์†Œ๋“ค์„ ์„ ํƒํ•œ๋‹ค.
  3. .toIntArray()
    ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ •์ˆ˜ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. Kotlin์—์„œ filter() ํ•จ์ˆ˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด toIntArray() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

 


 

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

 

class Solution {
    fun solution(arr: IntArray): IntArray {
        var min = Int.MAX_VALUE
        for(i in arr) {
            if(i < min) min = i
        }

        var array = ArrayList<Int>()

        for(i in arr) {
            if(i != min) array.add(i)
        }

        return if(arr.size == array.size || array.isEmpty())  {
            IntArray(1) {-1}
        } else array.toIntArray()
    }
}
  • minOrNull()๊ณผ filter()๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์„ ๋•Œ ์ผ์ผํžˆ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 

 

 

 

 

 

 

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