[Python] 프로그래머스 - Level2 - 오픈채팅방

강주형·2022년 8월 26일
0

https://school.programmers.co.kr/learn/courses/30/lessons/42888

2019 KAKAO BLIND RECRUITMENT

def solution(record):
    r_split = [r.split() for r in record]
    user = {}
    order = []
    answer = []
    for r in r_split:
        if r[0] == 'Enter':
            user[r[1]] = r[2]
            order.append((r[1], 'E'))
        elif r[0] == 'Leave':
            order.append((r[1], 'L'))
        else:
            user[r[1]] = r[2]
    for o in order:
        if o[1] == 'E':
            answer.append(user[o[0]]+"님이 들어왔습니다.")
        else:
            answer.append(user[o[0]]+"님이 나갔습니다.")
    return answer

카카오 레벨2치고 엄청 쉬웠다.
리스트, 딕셔너리, 튜플을 적절히 사용하는 것이 포인트인 듯

타인 코드

def solution(record):
    answer = []
    namespace = {}
    printer = {'Enter':'님이 들어왔습니다.', 'Leave':'님이 나갔습니다.'}
    for r in record:
        rr = r.split(' ')
        if rr[0] in ['Enter', 'Change']:
            namespace[rr[1]] = rr[2]

    for r in record:
        if r.split(' ')[0] != 'Change':
            answer.append(namespace[r.split(' ')[1]] + printer[r.split(' ')[0]])

    return answer

거의 비슷한 로직으로 구현한 것 같음

profile
Statistics & Data Science

0개의 댓글