띠리링구 2022. 3. 20. 15:46

코딩테스트 연습 - 오픈채팅방 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

 

푸는데 20분 걸렸다!! 드디어 처음으로 혼자 풀 수 있는 문제를 만났다 ㅋㅋㅋ

이..이건 좀 쉬운데!? 하ㅏㅎ

 

내가 푼 방법은 이렇다. two-scan을 하는데, 첫 번째 스캔 때 uid별 최종적인 닉네임을 계산한다. 두 번째 스캔 때 uid->닉네임 매칭 데이터를 가지고 ~님이 들어왔습니다, ~님이 나갔습니다 문장을 만든다.

 

def solution(record):
    answer = []
    
    uid_nick = {}
    cmd_uid = []
    
    for line in record:
        
        line = line.split()
        cmd = line[0]
        uid = line[1]
        
        if cmd == 'Enter' or cmd == 'Change':
            nick = line[2]
            uid_nick[uid] = nick
        cmd_uid.append((cmd,uid))
    
    for cmd,uid in cmd_uid:
        if cmd == 'Enter':
            answer.append(f'{uid_nick[uid]}님이 들어왔습니다.')
        if cmd == 'Leave':
            answer.append(f'{uid_nick[uid]}님이 나갔습니다.')
    
    return answer

 

 

운동 갔다 와서 다른 문제도 하나 풀어봐야지. 뭔가.. 끙끙 싸매다가 포기하고 정답 본 다음에 자괴감이 드는 과정을 거치지 않으면 공부했다는 느낌이 안드는.. 그런느낌? 공부하면서 느끼는 자괴감이 실력 향상에 비례하는 거 같기도 하고 ㅋㅋ