SW Test/Programmers
[Programmers] Lv2. ์คํ์ฑํ ๋ฐฉ(kotlin)
An effort will never betray ๐
2022. 7. 31. 16:23
๋ฐ์ํ
๋ฌธ์
์์
ํ์ด
- enterlist์๋ ์ ์ ID์ ์ถ์ ์ ๋ปํ๋ Boolean ๋ณ์๋ฅผ ์ ์ฅํ๋๋ก ํ์์ต๋๋ค. 0์ ๋๊ฐ๋ ๊ฒ์ ๋ปํ๊ณ 1์ ๋ค์ด์ค๋ ๊ฒ์ ๋ปํฉ๋๋ค.
- ๊ทธ๋ฆฌ๊ณ ์ ์ ID์ ๋๋ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ nicknamemap์ ์์ฑํ์์ต๋๋ค. ๋๋ค์์ ๊ณ์ ๋ณ๊ฒฝ๋ ์ ์์ผ๋ฏ๋ก ๋ณ๋์ ์๋ฃ๊ตฌ์กฐ์ ์ ์ฅํ๋ค๊ณ ์๊ฐํ์๋ฉด ๋ฉ๋๋ค.
- ์ดํ recod์ ์ ๋ณด๋ฅผ ํ๋์ฉ ํ์ฑํ์ฌ enterlist์ nicknamemap์ ๊ฐฑ์ ํฉ๋๋ค.
- ๋ง์ง๋ง์ผ๋ก enterlist์ ์๋ ์ ๋ณด๋ฅผ ๊ฐ์ง๊ณ ๊ฒฐ๊ณผ๊ฐ์ ์ถ๋ ฅํ๋๋ก ํฉ๋๋ค.
class Solution {
fun solution(record: Array<String>): Array<String> {
val enterlist = mutableListOf<Pair<String, Boolean>>()
val nicknamemap = mutableMapOf<String,String>()
record.forEach{
val list = it.split(" ")
when(list[0]){
"Enter" -> {
enterlist.add(list[1] to true)
nicknamemap.put(list[1], list[2])
}
"Leave" -> {
enterlist.add(list[1] to false)
}
"Change" -> {
nicknamemap.put(list[1], list[2])
}
}
}
return enterlist.map{
"${nicknamemap.get(it.first)}๋์ด " + if(it.second) "๋ค์ด์์ต๋๋ค." else "๋๊ฐ์ต๋๋ค."
}.toTypedArray()
}
}
์ฐธ๊ณ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ kotlin์ ํน์ฑ์ ๋ง๊ฒ ํจ์๋ฅผ ๋ง์ด ์ตํ์ ๐ฝ
๋ฐ์ํ