본문 바로가기
알고리즘/프로그래머스

[프로그래머스 42888] 오픈채팅방 (C++)

by Bloofer 2021. 2. 27.

A. 문제설명

문제에 대한 자세한 설명은 링크 참조

programmers.co.kr/learn/courses/30/lessons/42888

 

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

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

programmers.co.kr

 

1. 카카오톡 오픈채팅방에서 사람들이 닉네임을 사용하여 대화를 한다.

2. 대화방에서 사람이 들어오거나 나가면 다음과 같은 메세지가 출력된다.

"[닉네임]님이 들어왔습니다."
"[닉네임]님이 나갔습니다."

3. 채팅방에서 닉네임을 변경할 수 있는데, 변경하는 방법은 아래 두가지이다.

채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다.
채팅방에서 닉네임을 변경한다.

4. 닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다.

5. 최종적으로 방을 개설한 사람이 보게 되는 메시지를 문자열 배열 형태를 구하라.

 

B. 접근법

맵과 벡터를 사용한 구현

 

C++ Map 컨테이너를 사용하여 매 채팅방에서 닉네임이 업데이트 되는 딕셔너리를 만들고, 채팅방에서 기록된 로그는 따로 벡터에 저장하여 최종 닉네임으로 출력

 

C. 풀이

1. 맵에 채팅방 닉네임을 업데이트

2. 채팅방에서 기록된 로그는 따로 벡터에 저장

 

D. 내 코드