[Python] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방
문제
https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
문제가 길어서 어려워보일 수 있겠지만, 어렵다기 보단 친절한 문제인 것 같다.
채팅방에 들어왔다가 나갔을 때 기록이 남으며, 닉네임이 바뀌는 경우는 2개의 경우 인데
1. 채팅방을 나갔다가 똑같은 닉네임으로 다시 들어오는 경우 (이전 기록에도 이름이 변경됨)
2. 채팅방에서 닉네임을 변경하는 경우
처음 시도는 기록이 남겨질 때마다 Enter, Leave, Change 경우를 따로 둬서 업데이트를 하려했으나
그렇게 하면 배열만으로는 해결이 안되고 유저 정보가 담긴 Dictionary가 필요하다.
왜냐면 닉네임 변경되는 1번의 경우에서 유저 id에 맞는 닉네임으로 변경해줘야 되기 때문이다.
그니까 결국 Enter이든 Change이든 유저 정보가 담긴 Dictionary에 계속 유저를 업데이트 해주면 된다.
Enter이면 userid 값이 없었으니 새로 업데이트 되고,
Change이면 userid 값이 있으니 새로운 닉네임으로 업데이트 된다.
이 두 경우는 모두 배열의 길이가 3일 때만! (Leave일 때는 닉네임이 필요없다)
또한 logs 배열을 둬서 userid의 상태 값을 for문을 돌면서 넣어줬다.
그러면 다음 for문에서는 logs 배열의 event(들어오고 나가는 등)에 맞게 유저 정보 Dictionary에서 userid값에 맞게 메세지를 append하면 끝이다!