-
[Programmers] Lv2. ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ(kotlin)SW Test/Programmers 2022. 10. 22. 17:02๋ฐ์ํ
๋ฌธ์
https://school.programmers.co.kr/learn/courses/30/lessons/92341 ์์
https://school.programmers.co.kr/learn/courses/30/lessons/92341 ํ์ด
- ๋ ๊ฐ์ map์ ํตํด ํ๋๋ ์ /์ถ์ฐจ ๊ธฐ๋ก๊ณผ ํ๋๋ ํด๋น ์ฐจ๋์ ์ ์ฒด ์๊ฐ์ ๊ธฐ๋กํ์๋ฉด ๋ฉ๋๋ค.
import kotlin.math.* class Solution { fun solution(fees: IntArray, records: Array<String>): IntArray { val score = mutableMapOf<String, Int>() var map = mutableMapOf<String, Int>() records.forEach{ record -> val rl = record.split(" ") val time = rl.get(0).split(":").let{ it.first().toInt()* 60 + it.last().toInt()} val num = rl.get(1) if(map.contains(num)){ score.put(num, (score.get(num)?: 0) + time - map.get(num)!!) map.remove(num) }else{ map.put(num, time) } } for(elem in map){ score.put(elem.key, (score.get(elem.key)?: 0) + 60*23 + 59 - elem.value) } return score.toSortedMap().map{ if(it.value <=fees.get(0).toInt()){ fees.get(1).toInt() }else{ fees.get(1).toInt() + ceil((it.value - fees.get(0).toInt())/fees.get(2).toFloat()).toInt()*fees.get(3).toInt() } }.toIntArray() } }
์ฐธ๊ณ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ
- mutableMapOf๋ Java์ LinkedHashMap์ ์์ฑํฉ๋๋ค. LinkedHashMap์ HashMap๊ณผ key์ value๋ฅผ ๊ฐ์ง๊ณ ์๋ ํํ๋ ๋์ผํ๋ ๋ฐ์ดํฐ์ ์์๋ฅผ ๋ณด์ฅ๋ฐ๊ธฐ ์ํด์ ๋ณ๋์ Double Linked List๋ฅผ ๊ด๋ฆฌํ๊ณ ์์ต๋๋ค.
- https://developer.android.com/reference/java/util/LinkedHashMap
LinkedHashMap | Android Developers
developer.android.com
๋ฐ์ํ'SW Test > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] Lv2. ์ฐ์ ๋ถ๋ถ ์์ด(kotlin) (0) 2022.10.22 [Programmers] Lv2. ํผ๋ก๋(kotlin) (0) 2022.10.22 [Programmers] Lv2.k์ง์์์ ์์ ๊ฐ์ ๊ตฌํ๊ธฐ(kotlin) (0) 2022.10.12 [Programmers] Lv2.ํ๋ฆฐํฐ(kotlin) (0) 2022.09.30 [Programmers] Lv2. ์์ฅ(kotlin) (0) 2022.09.25