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

CHOI YUN HO·2021년 4월 8일
0

알고리즘 문제풀이

목록 보기
21/63

📃 문제 설명

오픈 채팅방

[문제 출처 : 프로그래머스]

👨‍💻 해결 방법

나의 생각의 흐름을 주절주절..

데이터베이스를 구축하는 느낌으로
고유값인 아이디를 Key로 가지고 닉네임을 Value로 가지는 딕셔너리를 만들었다.

이러면 나중에 닉네임이 변경되어도 어차피 해당 ID의 Value를 가져오기만 하면 돼서 따로 고려할 문제가 없었다.

결론

딕셔너리에 정보를 모두 저장하고,
'Enter', 'Leave', 'Change' 세 명령어에 따라 각각 알맞게 처리해주면 끝

👨‍💻 소스 코드

def solution(record):
    answer = []
    dic = {}
    stringList = []
    idList = []

    for r in record:
        stringList = r.split()

        if stringList[0] == 'Enter':
            dic[stringList[1]] = stringList[2]
            answer.append('님이 들어왔습니다.')
            idList.append(stringList[1])
        elif stringList[0] == 'Leave':
            answer.append('님이 나갔습니다.')
            idList.append(stringList[1])
        elif stringList[0] == 'Change':
            dic[stringList[1]] = stringList[2]

    for i in range(len(answer)):
        answer[i] = dic[idList[i]] + answer[i]

    return answer
profile
가재같은 사람

0개의 댓글