オープンチャットルーム
質問する
もんだいぶんせき
外に出てから入ってきたりニックネームを直したりするといつも変わる可能性がある結果、最初から最後まで変わったニックネームを見せることになります
に答える 변하지 않는 유저ID
.ユーザID 자유롭게 바뀔 수 있는 닉네임
と해시맵
を使用して検索すれば、常に見つけることができます.
オーダー
변하지 않는 유저ID
.ユーザID 자유롭게 바뀔 수 있는 닉네임
と해시맵
を使用して検索すれば、常に見つけることができます.オーダー
海西地図にユーザーID、ニックネームを登録する
변하지 않는 유저ID
を日時マッピングとして指定したキー자유롭게 바뀔 수 있는 닉네임
を日時マッピングの値とした場合、常にID->ニックネーム変換が可能となる. HashMap<String,String> hash = new HashMap<>(); //유저ID, 닉네임으로 해시맵 구성
for(String s : record){ //한 사건당 닉네임 구분을 위해
String[] temp = s.split(" ");
switch(temp[0]){
case "Enter":
case "Change": //입장, 변경
hash.put(temp[1],temp[2]); //id, 닉네임 저장
break;
}
}
文字列のsplit(" ")
は、単語単位で配列に格納される.temp[0]
:アクションtemp[1]
: idtemp[2]
:ニックネームアクセスとニックネームの変更時にのみハッシュマッピングのニックネームを入力、変更します.
現在のニックネームですべてのレコードを出力
従来とは異なり,
String
の+
演算ではなく,StringBuilder
のappend()
法を用いた. //출력 배열 해시로 id->닉네임
for(String s: record){
String[] temp = s.split(" ");
StringBuilder sb = new StringBuilder();
String id = temp[1]; //ID
sb.append(hash.get(id) + "님이 "); //닉네임
switch(temp[0]){
case "Enter": //입장
sb.append("들어왔습니다.");
answer.add(sb.toString());
break;
case "Leave": //퇴장
sb.append("나갔습니다.");
answer.add(sb.toString());
break;
}
}
ニックネームの変更は出力されません.そのため、入力と終了時にのみ結果が出力されます.コード#コード#
import java.util.*;
class Solution {
public String[] solution(String[] record) {
HashMap hash = new HashMap<>();//ユーザーID、ニックネームを使用したハッシュマッピングの構成
ArrayList answer = new ArrayList<>();//結果の保存 for(String s : record){ //한 사건당 닉네임 구분을 위해
String[] temp = s.split(" ");
switch(temp[0]){
case "Enter":
case "Change": //입장, 변경
hash.put(temp[1],temp[2]); //id, 닉네임 저장
break;
}
}
//출력 배열 해시로 id->닉네임
for(String s: record){
String[] temp = s.split(" ");
StringBuilder sb = new StringBuilder();
String id = temp[1]; //ID
sb.append(hash.get(id) + "님이 "); //닉네임
switch(temp[0]){
case "Enter": //입장
sb.append("들어왔습니다.");
answer.add(sb.toString());
break;
case "Leave": //퇴장
sb.append("나갔습니다.");
answer.add(sb.toString());
break;
}
}
return answer.toArray(new String[answer.size()]); //결과출력
}
}
GitHub
https://github.com/ds02168/Study_Algorithm/commit/e40e17bf98b7cfa27155072c87182f43e2f4ae71
Reference
この問題について(オープンチャットルーム), 我々は、より多くの情報をここで見つけました
https://velog.io/@ds02168/오픈채팅방
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
ArrayList answer = new ArrayList<>();//結果の保存
for(String s : record){ //한 사건당 닉네임 구분을 위해
String[] temp = s.split(" ");
switch(temp[0]){
case "Enter":
case "Change": //입장, 변경
hash.put(temp[1],temp[2]); //id, 닉네임 저장
break;
}
}
//출력 배열 해시로 id->닉네임
for(String s: record){
String[] temp = s.split(" ");
StringBuilder sb = new StringBuilder();
String id = temp[1]; //ID
sb.append(hash.get(id) + "님이 "); //닉네임
switch(temp[0]){
case "Enter": //입장
sb.append("들어왔습니다.");
answer.add(sb.toString());
break;
case "Leave": //퇴장
sb.append("나갔습니다.");
answer.add(sb.toString());
break;
}
}
return answer.toArray(new String[answer.size()]); //결과출력
}
}GitHub
https://github.com/ds02168/Study_Algorithm/commit/e40e17bf98b7cfa27155072c87182f43e2f4ae71
Reference
この問題について(オープンチャットルーム), 我々は、より多くの情報をここで見つけました https://velog.io/@ds02168/오픈채팅방テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol