[プログラマー]オープンチャットルーム
回答日:2021年06月15日
質問する
質問する
質問リンク:https://programmers.co.kr/learn/courses/30/lessons/42888
アクセスと解析
各プレイヤーのニックネームをどのように管理するかが重要だと思います.
以下の質問では、与えられた条件に応じてニックネームを変更できる場合は以下のようになります.
グループ内で名前を変更する方法は2つあります.
1.チャットルームを出て、新しいニックネームに入ります.
2.チャットルームでニックネームを変更します.
したがって,「Enter」「Change」であれば,各ユーザのニックネームを最新化する.
そのためにC++STLのmapを用いた.
「Enter」、「Change」の場合のみ、keyをユーザID、valueをニックネームとして指定し、最後に更新して、最新のユーザID別ニックネーム情報を得ることができます.
その後、「Enter」と「Leave」の2つのケースで、チャットルームに表示されたメッセージを保存できます.
コード#コード# #include <string>
#include <vector>
#include <map>
#include <sstream>
using namespace std;
vector<string> split(string input, char delimiter) {
vector<string> answer;
stringstream ss(input);
string temp;
while (getline(ss, temp, delimiter)) {
answer.push_back(temp);
}
return answer;
}
vector<string> solution(vector<string> record) {
vector<string> answer;
map<string, string> id_info;
for (auto str : record) {
vector<string> v = split(str, ' ');
if (v[0] == "Enter") {
id_info[v[1]] = v[2];
} else if (v[0] == "Change") {
id_info[v[1]] = v[2];
}
}
for (auto str : record) {
vector<string> v = split(str, ' ');
if (v[0] == "Enter") {
answer.push_back(id_info[v[1]] + "님이 들어왔습니다.");
} else if (v[0] == "Leave") {
answer.push_back(id_info[v[1]] + "님이 나갔습니다.");
} else {
continue;
}
}
return answer;
}
結果
フィードバック
比較的簡単な問題なので、うまく解決できます.文字列をどのようにグループ化するか、apiを見ずにC++STLをよりよく使用する方法を把握し、これに関連する問題をより多く解決しようとします.
Reference
この問題について([プログラマー]オープンチャットルーム), 我々は、より多くの情報をここで見つけました
https://velog.io/@bestcoders/프로그래머스-오픈채팅방
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
各プレイヤーのニックネームをどのように管理するかが重要だと思います.
以下の質問では、与えられた条件に応じてニックネームを変更できる場合は以下のようになります.
グループ内で名前を変更する方法は2つあります.
1.チャットルームを出て、新しいニックネームに入ります.
2.チャットルームでニックネームを変更します.
したがって,「Enter」「Change」であれば,各ユーザのニックネームを最新化する.
そのためにC++STLのmapを用いた.
「Enter」、「Change」の場合のみ、keyをユーザID、valueをニックネームとして指定し、最後に更新して、最新のユーザID別ニックネーム情報を得ることができます.
その後、「Enter」と「Leave」の2つのケースで、チャットルームに表示されたメッセージを保存できます.
コード#コード# #include <string>
#include <vector>
#include <map>
#include <sstream>
using namespace std;
vector<string> split(string input, char delimiter) {
vector<string> answer;
stringstream ss(input);
string temp;
while (getline(ss, temp, delimiter)) {
answer.push_back(temp);
}
return answer;
}
vector<string> solution(vector<string> record) {
vector<string> answer;
map<string, string> id_info;
for (auto str : record) {
vector<string> v = split(str, ' ');
if (v[0] == "Enter") {
id_info[v[1]] = v[2];
} else if (v[0] == "Change") {
id_info[v[1]] = v[2];
}
}
for (auto str : record) {
vector<string> v = split(str, ' ');
if (v[0] == "Enter") {
answer.push_back(id_info[v[1]] + "님이 들어왔습니다.");
} else if (v[0] == "Leave") {
answer.push_back(id_info[v[1]] + "님이 나갔습니다.");
} else {
continue;
}
}
return answer;
}
結果
フィードバック
比較的簡単な問題なので、うまく解決できます.文字列をどのようにグループ化するか、apiを見ずにC++STLをよりよく使用する方法を把握し、これに関連する問題をより多く解決しようとします.
Reference
この問題について([プログラマー]オープンチャットルーム), 我々は、より多くの情報をここで見つけました
https://velog.io/@bestcoders/프로그래머스-오픈채팅방
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
#include <string>
#include <vector>
#include <map>
#include <sstream>
using namespace std;
vector<string> split(string input, char delimiter) {
vector<string> answer;
stringstream ss(input);
string temp;
while (getline(ss, temp, delimiter)) {
answer.push_back(temp);
}
return answer;
}
vector<string> solution(vector<string> record) {
vector<string> answer;
map<string, string> id_info;
for (auto str : record) {
vector<string> v = split(str, ' ');
if (v[0] == "Enter") {
id_info[v[1]] = v[2];
} else if (v[0] == "Change") {
id_info[v[1]] = v[2];
}
}
for (auto str : record) {
vector<string> v = split(str, ' ');
if (v[0] == "Enter") {
answer.push_back(id_info[v[1]] + "님이 들어왔습니다.");
} else if (v[0] == "Leave") {
answer.push_back(id_info[v[1]] + "님이 나갔습니다.");
} else {
continue;
}
}
return answer;
}
フィードバック
比較的簡単な問題なので、うまく解決できます.文字列をどのようにグループ化するか、apiを見ずにC++STLをよりよく使用する方法を把握し、これに関連する問題をより多く解決しようとします.
Reference
この問題について([プログラマー]オープンチャットルーム), 我々は、より多くの情報をここで見つけました
https://velog.io/@bestcoders/프로그래머스-오픈채팅방
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について([プログラマー]オープンチャットルーム), 我々は、より多くの情報をここで見つけました https://velog.io/@bestcoders/프로그래머스-오픈채팅방テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol