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

hyein song·2022년 8월 1일
0

🔗문제 링크

💡생각한 풀이법

  1. record의 한개 요소를 split 한 뒤 "Enter" or "Change" 즉 "Leave"가 아니라면 닉네임을 저장하는 딕셔너리 (nickname_dict)에 {uid:nickname} 형태로 저장
  2. tmp[0]이 "Change" 명령어가 아닐때 nickname_dict에서 tmp[1]을 key로 최종 닉네임을 찾아 s에 저장
  3. tmp[0] 명령어에 따라 미리 생성해 둔 act 딕셔너리에서 출력할 메세지를 얻은 뒤 s 문자열에 더함
  4. s를 answer 배열에 저장 후 리턴

🔍 최종 코드

def solution(record):
    answer = []
    nickname_dict = {}
    act = {"Enter": "님이 들어왔습니다.",
          "Leave":"님이 나갔습니다."}
	#1
    for r in record:
        tmp = r.split()
        if tmp[0] != "Leave":
            nickname_dict[tmp[1]] = tmp[2]

    for r in record:
        tmp = r.split()
        s = nickname_dict[tmp[1]]
        if tmp[0] != "Change":
            s += act[tmp[0]]
            answer.append(s)

    return answer

0개의 댓글