-
[Programmers] Lv2. ํํ(kotlin)SW Test/Programmers 2022. 9. 24. 21:13๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/64065 ์์
https://school.programmers.co.kr/learn/courses/30/lessons/64065 ํ์ด
- ์ ๋ฌธ์ ๋ ๋ฌธ์์ด๋ก ์ฃผ์ด์ง๋ ์ ๋ ฅ๊ฐ์ 2์ค ๋ฆฌ์คํธ๋ก๋ง ๋ณ๊ฒฝํ๋ฉด ์ฌ์ด ๋ฌธ์ ์ ๋๋ค.
- ์ ๋ split์ ํ๋ ๊ธฐ์ค์ "},"๋ก ์ก์๊ณ ์ดํ ๊ฐ ๋ฌธ์์ด์์ '{'์ '}'๋ ๋น ๊ณต๊ฐ์ผ๋ก ๋ณ๊ฒฝํ์์ต๋๋ค.
- ํํ์ ๋ง๋ค๊ธฐ ์ํด์๋ ๋ฆฌ์คํธ ๋ด ๋ฆฌ์คํธ ์์ ๊ฐฏ์๊ฐ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ์ ์์ผ์ผ ์ฌ๋ฐ๋ฅธ ๋ต์ ๊ตฌํ ์ ์์ต๋๋ค.
- ์ดํ ์ค๋ณต์ด ๋์ง ์๋๋ก answer ๋ฆฌ์คํธ์ ๋ํด์ฃผ๋ฉด ๋ฉ๋๋ค. ์ด๋ฅผ ํ๋์ฉ ํด๋ ๋์ง๋ง fold ํจ์์ set์ ํน์ง์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
class Solution { fun solution(s: String): IntArray { var answer = mutableListOf<Int>() val list = s.split("},").map{ it.replace('{',' ').replace('}',' ').trim().split(",").map{it.toInt()}.sorted() }.sortedBy{it.size} list.forEach{ sublist -> sublist.forEach{ if(!answer.contains(it)){ answer.add(it) } } } return answer.toIntArray() } }
์ฐธ๊ณ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ
- mutableListOf๋ java์ ArrayList๋ฅผ ์์ฑํด์ฃผ๊ณ java์ ArrayList๋ ์ฌ์ด์ฆ๋ฅผ ์กฐ์ ๊ฐ๋ฅํ ๋ฐฐ์ด์ ๋๋ค. ์ด๊ธฐ ์ค์ ํ ๋ฐฐ์ด์ capacity๋ณด๋ค ์ถ๊ฐ๋ฅผ ํด์ผํ ๊ฒฝ์ฐ ์๋ก์ด ๋ฐฐ์ด์ ์์ฑํ๋ ์์ ์ ์๋์ผ๋ก ํด์ฃผ๊ฒ ๋์ด์์ต๋๋ค.
- mutablesetOf๋ java์ LinkedHashSet์ ์์ฑํ์ฌ ํด์ฌํ ์ด๋ธ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ ์ถ๊ฐ์ ์ผ๋ก Double Linked List๋ก ์์๋ฅผ ๊ธฐ๋กํฉ๋๋ค.
- https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/fold.html
fold - Kotlin Programming Language
kotlinlang.org
๋ฐ์ํ'SW Test > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] Lv2.ํ๋ฆฐํฐ(kotlin) (0) 2022.09.30 [Programmers] Lv2. ์์ฅ(kotlin) (0) 2022.09.25 [Programmers] Lv2. ๊ดํธ ํ์ ํ๊ธฐ(kotlin) (0) 2022.09.23 [Programmers] Lv2. ์์๋์งํ(kotlin) (0) 2022.09.20 [Programmers] Lv2.์นดํซ(kotlin) (0) 2022.09.14