프로그래머스의 오픈 채팅방(Lv2) 문제이다.
[ 문제풀이 ]
가장 먼저, 본인은 map을 이용해서 < ID, 닉네임 > 을 쌍으로 관리해 주었다. 즉, map<string , string> 으로 선언해서 ID와 닉네임을 관리하였다.
"Enter"라는 명령어가 실행되었을 때, 1차적으로 입장한 ID 에 따른 닉네임을 저장해 주었고,
"Change"라는 명령어가 실행되었을 때, ID에 저장되어 있는 닉네임을 저장해 주었다.
주어진 명령어들에서, ' '를 기준으로 어떤 명령어인지, 그리고 ID과 닉네임을 관리만 잘 하면, 실질적인 관리는 map으로 하면 되는 문제였다..
[ 소스코드 ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #include <string> #include <vector> #include <map> using namespace std; vector<string> solution(vector<string> record) { map<string, string> User; for (int i = 0; i < record.size(); i++) { int Idx = 0; string Cmd = ""; for (Idx; record[i][Idx] != ' '; Idx++) Cmd += record[i][Idx]; Idx++; if (Cmd == "Enter") { string ID = ""; string Name = ""; for (Idx; record[i][Idx] != ' '; Idx++) ID += record[i][Idx]; Idx++; for (Idx; Idx < record[i].length(); Idx++) Name += record[i][Idx]; User[ID] = Name; } else if (Cmd == "Change") { string ID = ""; string Name = ""; for (Idx; record[i][Idx] != ' '; Idx++) ID += record[i][Idx]; Idx++; for (Idx; Idx < record[i].length(); Idx++) Name += record[i][Idx]; User[ID] = Name; } } vector<string> answer; for(int i = 0 ;i < record.size(); i++) { int Idx = 0; string Cmd = ""; for (Idx; record[i][Idx] != ' '; Idx++) Cmd += record[i][Idx]; Idx++; if (Cmd == "Enter") { string ID = ""; for (Idx; record[i][Idx] != ' '; Idx++) ID += record[i][Idx]; string Result = User[ID]; Result += "님이 들어왔습니다."; answer.push_back(Result); } else if (Cmd == "Leave") { string ID = ""; for (Idx; Idx < record[i].length(); Idx++) ID += record[i][Idx]; string Result = User[ID]; Result += "님이 나갔습니다."; answer.push_back(Result); } } return answer; } | cs |
'[ Programmers Code ] > # PG - Level2' 카테고리의 다른 글
[ 프로그래머스 파일명 정렬 (Lv2) ] (C++) (0) | 2020.09.20 |
---|---|
[ 프로그래머스 [3차] 방금 그 곡 (Lv2) ] (C++) (0) | 2020.09.10 |
[ 프로그래머스 [1차] 캐시 (Lv2) ] (C++) (0) | 2020.09.09 |
[ 프로그래머스 [1차] 프렌즈4블록 (Lv2) ] (C++) (0) | 2020.09.08 |
[ 프로그래머스 [1차] 뉴스 클러스터링 (Lv2) ] (C++) (0) | 2020.09.08 |