Problem : 오픈 채팅방
유형 : 해싱
문제 해석
- 마지막에 보게 되는 메시지를 리턴하라.
문제 재해석
- 유저의 구별은
uid
로 한다. - 유저의 닉네임은 변경 될 수 있다.
- 유저의 닉네임이 변경 된 경우, 채팅방 메시지에 남긴 로그도 변경 된다.
해결 전략
uid
를 기준으로닉네임
을 기억한다.최종적으로 변한 닉네임
에만 관심이 있다.- 닉네임의 변화를 관찰하고, 최종적으로 변경된 닉네임만 기억한다.
설계, 구현
해싱
을 이용하여 닉네임을 기억한다.- 한번 순회하며, 닉네임이 변경되는
Enter
와Change
의 경우에만 관심을 가진다. - 다시 한번 순회하며, 로그 메시지를 남기는
Enter
와Leave
의 경우에만 관심을 가진다.
코드
1 |
|
피드백
sstream
은stringstream
안에 있다.bits/stdc++
사용을 좀 줄여야겠다.- 검색 노출을 위해서, 앞으로는 사용 언어도 뒤에 붙일 예정이다.