2024. 3. 19. 09:24, ๐กAlgorithm
๋ฐ์ํ
๋ฌธ์
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()
}
}
์ค๋ช
- if (arr.size == 1) intArrayOf(-1) else ...:
๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ๋ฅผ ์ฒ๋ฆฌํ๋ค. ๋ง์ฝ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ด๋ฉด, ๋ฐฐ์ด์๋ ์ต์๊ฐ๋ง ์กด์ฌํ๋ฏ๋ก ๋ฐฐ์ด์ด [-1]์ด ๋์ด์ผ ํ๋ค. ๋ฐ๋ผ์ ์ด ๋ถ๋ถ์ ์ผํญ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 1์ธ ๊ฒฝ์ฐ์๋ -1์ ํฌํจํ ๋ฐฐ์ด์ ๋ฐํํ๋ค. - arr.filter { it != arr.minOrNull() }
๋ฐฐ์ด์์ ์ต์๊ฐ์ ์ ์ธํ ์์๋ค๋ก ์ด๋ฃจ์ด์ง ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋ค. filter() ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ค๋ง์ ์ ํํ์ฌ ์๋ก์ด ๋ฆฌ์คํธ๋ฅผ ์์ฑํ๋๋ฐ, ์ฌ๊ธฐ์๋ ๋ฐฐ์ด์ ์ต์๊ฐ๊ณผ ๊ฐ์ง ์์ ์์๋ค์ ์ ํํ๋ค. - .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