Programmers#오픈채팅방

LSM ·2021년 9월 12일
0
post-custom-banner


LEVEL :

Level2


문제 요약 :

2019년 카카오톡 코딩테스트 제출 문제이다.

주어진 문자열 출입기록 로그를 통해 최종 오픈채팅 방 출입기록을 출력하는 문제이다.


해결 방안 :

문제는 길지만 구현에는 큰 어려움은 없었다. uid를 딕셔너리의 key 값으로 두고 입장할 때나 이름 변경시 value 값을 변경해주고 최종적으로 출력할 때는 uid값을 기준으로 출력해 주면 된다.


시간 복잡도 :
N = records 길이
O(N)


Solution

def solution(record):
    answer = []
    records = [record[i].strip().split() for i in range(len(record))]
    info = {}
    for record in records :
        command = record[0]
        uid = record[1]
        if command != "Leave" :
            name = record[2]
            info[uid] = name
    in_msg = "님이 들어왔습니다."
    out_msg = "님이 나갔습니다."
    for record in records :
        command = record[0]
        uid = record[1]
        if command != "Change" :
            answer.append(info[uid]+ in_msg if command == "Enter" else info[uid]+out_msg)
    return answer

출처

프로그래머스 : https://programmers.co.kr/learn/courses/30/lessons/42888

profile
개발 및 취준 일지
post-custom-banner

0개의 댓글