-
[Programmers] Lv2. ๋ฉ๋ด ๋ฆฌ๋ด์ผ(kotlin)SW Test/Programmers 2022. 9. 9. 11:21๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/72411 ์์
https://school.programmers.co.kr/learn/courses/30/lessons/72411 ํ์ด
- ํ๋์ ์ฃผ๋ฌธ(order)์์ ๊ตฌ์ฑ๋ ์ ์๋ ๋ฉ๋ด ๊ตฌ์ฑ์ ๋ฐฑํธ๋ํน ๊ธฐ๋ฒ์ ์ฌ์ฉํฉ๋๋ค. ์ด ๋ ์ต์ 2๊ฐ ์ด์์ ๋ฉ๋ด๊ฐ ๊ตฌ์ฑ๋์ด์ผ ํ๊ธฐ์ ๋ฌธ์์ด์ด 2 ์ดํ์ธ ๊ฒฝ์ฐ๋ ์ ์ธํ๊ณ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ก ํํํด์ผํ๊ธฐ์ ๋ฏธ๋ฆฌ ์ ๋ ฌ์ ์ํต๋๋ค.
- ์ดํ course ๋ฅผ ํ๋์ฉ ํ์ํ๋ฉด์ ํด๋น ๊ฐฏ์๋ก ๊ตฌ์ฑ๋ ๋ฉ๋ด ์กฐํฉ ์ค 2๋ฒ ์ด์ ์ฃผ๋ฌธ๋ ๊ฒ ์ค ์ต๋๊ฐ์ ๊ตฌํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ต๋๊ฐ๊ณผ ๋์ผํ ๋ฉ๋ด ๊ตฌ์ฑ์ ๋ชจ๋ answer์ ์ถ๊ฐํ์๋ฉด ๋ฉ๋๋ค.
class Solution { val csmap = mutableMapOf<String, Int>() fun getCourseInfo(str: String, idx: Int, s: String){ if(str.length == idx){ if(s.length >= 2){ csmap.put(s, csmap.getOrDefault(s, 0) + 1) } }else{ getCourseInfo(str, idx+1, s+str[idx]) getCourseInfo(str, idx+1, s) } } fun solution(orders: Array<String>, course: IntArray): Array<String> { val answer = mutableListOf<String>() orders.forEach{ val str = it.toCharArray().sorted().joinToString("") getCourseInfo(str, 0, "") } course.forEach{ cnt -> val max = csmap.filter{it.key.length == cnt && it.value >= 2}.values.maxOrNull() max?.let{ max -> answer.addAll(csmap.filter{it.key.length == cnt}.filter{it.value == max}.keys) } } return answer.sorted().toTypedArray() } }
์ฐธ๊ณ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ
- https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/max-or-null.html
maxOrNull - Kotlin Programming Language
kotlinlang.org
๋ฐ์ํ'SW Test > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] Lv2.์ด์ง ๋ณํ ๋ฐ๋ณตํ๊ธฐ(kotlin) (0) 2022.09.14 [Programmers] Lv2.JadenCase ๋ฌธ์์ด ๋ง๋ค๊ธฐ(kotlin) (0) 2022.09.12 [Programmers] Lv2. ํ๋ ฌ ํ ๋๋ฆฌ ํ์ ํ๊ธฐ(kotlin) (0) 2022.09.09 [Programmers] Lv2. ํ๊ฒ ๋๋ฒ(kotlin) (0) 2022.08.07 [Programmers] Lv2. ๊ธฐ๋ฅ๊ฐ๋ฐ (kotlin) (0) 2022.08.07