프로그래머스 - 오픈채팅방

오늘의 문제

프로그래머스 - KAKAO BLIND RECRUITMENT - 오픈채팅방

채팅방에 들어오고 나가거나, 닉네임을 변경한 기록이 담긴 문자열 배열 record가 매개변수로 주어질 때, 모든 기록이 처리된 후, 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태로 return 하도록 solution 함수를 완성하라.

풀이 방법

1
2
3
4
5
6
7
8
9
def solution(record):
    enter_sent = '{}님이 들어왔습니다.'
    leave_sent = '{}님이 나갔습니다.'
    user_name = {value.split()[1] : value.split()[2] for value in record if len(value.split()) == 3}
    
    record = [i for i in record if not i.startswith('Change')]
    record = list(map(lambda x: x.split(), record))
    
    return [enter_sent.format(user_name[i[1]]) if i[0] == 'Enter' else leave_sent.format(user_name[i[1]]) for i in record]
  1. 아이디는 고유번호다
  2. 닉네임은 가장 마지막에 변경된 게 전체 적용된다
  3. 닉네임 변경은 따로 메세지가 없다

이 세 조건만 유념한다면 쉽게 풀 수 있다.

사담

쉬웠다… 끝