본문 바로가기
프로그래밍/알고리즘 문제

[프로그래머스] kakao 2018 코딩테스트 - 오픈채팅방 (python)

by 잇서니 2019. 9. 3.
반응형
def solution(record):
    answer = []
    id_nic={}

   
    # uid / 닉네임 딕셔너리 생성
    for i in range(len(record)):
        temp=record[i].split(" ")
        if temp[0]!="Leave":
            id_nic[temp[1]]=temp[2]
            
    # 결과값 출력
    for i in range(len(record)):
        temp=record[i].split(" ")
        if temp[0]=="Enter":
            answer.append(id_nic[temp[1]]+"님이 "+"들어왔습니다.")
        elif temp[0]=="Leave":
            answer.append(id_nic[temp[1]]+"님이 "+"나갔습니다.")
            
    return answer

아이디어

  • Enter 혹은 Change를 할 때만 닉네임이 바뀝니다.
  • Enter, Change가 있는 경우에 id (temp[1])를 key로 갖고, 닉네임 (temp[2])을 value로 갖는 딕셔너리를 만들어줍니다.
  • 이 때 key가 중복되면 (유저가 닉네임을 변경한 경우) 새로운 value로 업데이트 됩니다.

 

python 개념

1) 문자열 구분자로 나누기

2) 문자열 붙히기

반응형

댓글