2024. 3. 18. 09:53, ๐กAlgorithm
๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/86051
์ ๊ทผ
- ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ด๋ถ์ ์์๋ฅผ ๊ฒ์ฌํ๊ณ , ์๋ ๊ฒฝ์ฐ sum์ ์ถ๊ฐํ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ค.
class Solution {
fun solution(numbers: IntArray): Int {
var sum = 0
if (numbers.contains(1) == false) sum += 1
if (numbers.contains(2) == false) sum += 2
if (numbers.contains(3) == false) sum += 3
if (numbers.contains(4) == false) sum += 4
if (numbers.contains(5) == false) sum += 5
if (numbers.contains(6) == false) sum += 5
.
.
.
return sum
}
}
- ์ด ๋ด์ฉ์ for๋ฌธ์ผ๋ก ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ์ด ์๋ฃ๋๋ค.
์ฑ๊ณต ์ฝ๋
class Solution {
fun solution(numbers: IntArray): Int {
var sum = 0
for (i in 1..9) {
if (numbers.contains(i) == false) sum += i }
return sum
}
}
์ค๋ช
- for๋ฌธ์ผ๋ก 1๋ถํฐ 9๊น์ง ๋ฐ๋ณตํ๋ฉฐ numbers ๋ฐฐ์ด ์์ 1๋ถํฐ 9๊น์ง์ ์์๊ฐ ์๋์ง ๊ฒ์ฌํ๋ค.(contains)
- ์์๊ฐ ์๋ ๊ฒฝ์ฐ(numbers.contains(i) == false) ์๋ sum์ ํด๋น ์์๋ฅผ ๋ํด์ค๋ค.
- ์๋ ์์๊ฐ ๋ชจ๋ ๋ํด์ง ๋ณ์ sum์ ๋ฆฌํดํ๋ค.
- numbers.contains(i) == false ๋์ i in numbers == false ๋ก ์ฌ์ฉํ ์๋ ์๋ค.
๐ก Kotlin์์ ๋ฐฐ์ด ์์ ํน์ ์์์ ๊ด๋ จ๋ ๋ฉ์๋
val array = arrayOf(1, 2, 3, 4, 5)
val result = 3 in array // true
- in ์ฐ์ฐ์
- ๋ฐฐ์ด ์์ ํน์ ์์๊ฐ ์๋์ง๋ฅผ ๊ฒ์ฌ
- ํด๋น ์์๊ฐ ๋ฐฐ์ด์ ํฌํจ๋์ด ์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ
val array = arrayOf(1, 2, 3, 4, 5)
val result = array.contains(3) // true
- contains()
- ๋ฐฐ์ด์ ํน์ ์์๊ฐ ํฌํจ๋์ด ์๋์ง๋ฅผ ๊ฒ์ฌ
- ํด๋น ์์๊ฐ ๋ฐฐ์ด์ ํฌํจ๋์ด ์์ผ๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ
val array = arrayOf(1, 2, 3, 4, 5)
val containsElement = array.any { it == 3 } // true
- .any()
- ๋ฐฐ์ด์ ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๊ฐ ํ๋๋ผ๋ ์๋์ง๋ฅผ ํ์ธ
- ๋ง์ฝ ๋ฐฐ์ด์ ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๊ฐ ํ๋๋ผ๋ ์๋ค๋ฉด true๋ฅผ ๋ฐํ, ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ
val array = arrayOf(1, 2, 3, 4, 5)
val index = array.indexOf(3) // 2
- indexOf()
- ๋ฐฐ์ด์์ ํน์ ์์์ ์ธ๋ฑ์ค๋ฅผ ๊ฒ์
- ํด๋น ์์๊ฐ ๋ฐฐ์ด์ ์์ผ๋ฉด ์ธ๋ฑ์ค๊ฐ, ๋ฐฐ์ด์ ์์ผ๋ฉด -1์ ๋ฐํ
val sortedArray = arrayOf(1, 2, 3, 4, 5)
val index = sortedArray.binarySearch(3) // 2
- binarySearch()
- ๋ฐฐ์ด์ด ์ ๋ ฌ๋์ด ์์ ๊ฒฝ์ฐ, ์ด์ง ๊ฒ์์ ์ํํ์ฌ ํน์ ์์์ ์ธ๋ฑ์ค๋ฅผ ๊ฒ์
- ํด๋น ์์๊ฐ ๋ฐฐ์ด์ ์์ผ๋ฉด ์ธ๋ฑ์ค๊ฐ, ๋ฐฐ์ด์ ์์ผ๋ฉด ์์๋ฅผ ๋ฐํ
val array = arrayOf(1, 2, 3, 4, 5)
val filteredArray = array.filter { it == 3 } // [3]
val containsElement = filteredArray.isNotEmpty() // true
- .filter()
- ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ง์ ์ ํํ์ฌ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑ
- ๋ฐ๋ผ์ ํน์ ์์๊ฐ ๋ฐฐ์ด์ ์๋์ง๋ฅผ ํ์ธํ๋ ๊ฒ๋ณด๋ค๋, ํด๋น ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๊ฐ ์๋์ง๋ฅผ ํ์ธํ๋ ๋ฐ ์ ํฉ
๋ค๋ฅธ ๋ฐฉ๋ฒ
class Solution {
fun solution(numbers: IntArray): Int = (0..9).filterNot(numbers::contains).sum()
}
- ์์ ๋ฐ๋๋ก .filter()๊ฐ ์๋ .filterNot()์ ์ฌ์ฉํ ๋ฐฉ๋ฒ์ด๋ค.
- filterNot(numbers::contains)
- ์ ๋ ฅ๋ ๋ฐฐ์ด numbers์ ํฌํจ๋์ง ์๋ ์ซ์๋ค์ ํํฐ๋ง
- filterNot() : ์ฃผ์ด์ง ์กฐ๊ฑด์ ๋ง์กฑํ์ง ์๋ ์์๋ค์ ์ ํํ์ฌ ์๋ก์ด ์ปฌ๋ ์ ์ ์์ฑ
- numbers::contains : numbers์ contains() ๋ฉ์๋๋ฅผ ์ฐธ์กฐํ๋ ๋ฉ์๋ ์ฐธ์กฐ - sum()์ผ๋ก ์ด๋ ๊ฒ ํํฐ๋ง๋ ์ซ์๋ค์ ํฉ์ ๊ณ์ฐํ๊ณ ๋ฆฌํด
class Solution {
fun solution(numbers: IntArray): Int = 45 - numbers.sum()
}
- 1๋ถํฐ 9๊น์ง ์ ๋ถ ๋ํ ๊ฐ(45)์์ numbers์ ํฉ์ ๋นผ์ค ๊ฐ๋จํ ํ์ด์ด๋ค.
๋ฐ์ํ
๐ฌ C O M M E N T