배준형 2022. 11. 22. 16:34

문제 출처: https://school.programmers.co.kr/learn/courses/30/lessons/92341?language=kotlin

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

나의풀이

출력을 할때 id와 그에 맞는 닉네임을 MutableMap에 Key 와 Value로 넣어주었고 Leave가 아니면 key와 Value값을 넣어주었다. action이 Enter이던 Change이던 상관없이 값을 넣어주면 되서 생각보다 간단하였다.

import java.util.*

class Solution {
    fun solution(record: Array<String>): Array<String> {
        var answer = arrayListOf<String>()
        val kakao = mutableMapOf<String, String>()
        
        record.map {
            val str = it.split(" ")
            
            if(str[0] != "Leave") {
                kakao[str[1]] = str[2]
            }
        }
        
        record.map {
            val str = it.split(" ")
            if(str[0] == "Enter") {
                answer.add("${kakao.getOrDefault(str[1], " ")}님이 들어왔습니다.")
            }
            else if (str[0] == "Leave") {
                answer.add("${kakao.getOrDefault(str[1], " ")}님이 나갔습니다.")
            }
            else{}
        }
        return answer.toTypedArray()
    }
}