본문 바로가기
Algorithm/etc

[파이썬] 프로그래머스 : 오픈채팅방 (Lv.2)

by 베짱이28호 2023. 7. 15.

[파이썬] 프로그래머스 : 오픈채팅방 (Lv.2)

 

 

프로그래머스

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

programmers.co.kr

 


풀이

방향성 생각

마지막 사람이 봤을 때가 중요하다.

user id에 따른 닉네임을 딕셔너리에 저장해놓고 마지막에 변경 사항을 한 번에 바꿔준다.

 

 

def solution(record):
    
    answer,table = [],{}

    for info in record:
        temp = info.split()
        
        if temp[0] == 'Enter':
            table[temp[1]] = temp[2]
            answer.append([temp[1],'님이 들어왔습니다.'])
        elif temp[0] == 'Leave':
            answer.append([temp[1],'님이 나갔습니다.'])
        else :
            table[temp[1]] = temp[2]
            
    result = []
    for user_id,messege in answer:
        result.append(str(table[user_id]+messege))
    return result

enter 혹은 change에서는 닉네임이 바뀔수도 있으므로 바꿔준다.

enter / leave의 경우에는 answer에다가 user id가 어떤 들어오는지 나가는지 저장한다.

answer에 있는 user id를 마지막 닉네임으로 치환한다.

코멘트

카카오식 하란대로 하기.

댓글