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