[Programmers](python)オープンチャット2019 KAO BLIND RECRUIMENT
🧩 質問する
オープンチャットルーム
KakaoTalk公開チャットルームでは友達ではない人とチャットができ、仮想のニックネームでチャットルームに入ることができます.
新入社員のキム・クルーはKakaoTalkの公開チャットルームを開設するため、さまざまな人が入ったり出たりできる管理窓口を作ることにした.誰かがチャットルームに入ると、次のメッセージが出力されます.
「ニックネームが入ってきた」
誰かがグループから外に出ると、次のメッセージが印刷されます.
[ニックネーム]出て行った
グループ内で名前を変更する方法は2つあります.
グループを離れた後、新しいネット名に入ります.
グループで名前を変更します.
ニックネームを変更すると、既存のチャットルームから出力された情報のニックネームもすべて変更されます.
たとえば、チャットルームで「Muzi」と「Prodo」のニックネームを使用している人が順番に入ると、チャットルームから次のメッセージが出力されます.
「ムジが入ってきた」
「Prodoが入ってきた」
もしグループの中の人が外に出たら、グループには次のようなメッセージが表示されます.
「ムジが入ってきた」
「Prodoが入ってきた」
「ムジは出て行った」
Muziが脱退して再入場した場合、Prodo名義で入場すると、既存のチャットルームのMuziもProdoに変更され、以下のようになります.
「Prodoが入ってきた」
「Prodoが入ってきた」
「Prodoが出てきた」
「Prodoが入ってきた」
チャットルームでは重複したニックネームの使用が許可されているため、現在チャットルームにProdoを使用している人が2人います.2番目にチャットルームに入ったProdoがニックネームをRyanに変更すると、チャットルームの情報は次のように変更されます.
「Prodoが入ってきた」
「Ryanが入ってきた」
「Prodoが出てきた」
「Prodoが入ってきた」
solution関数を完了し、チャットルームを入力または離れると、パラメータがニックネームを変更したレコードを含む文字列配列レコードである場合、すべてのレコード処理が完了すると、最終的に部屋を開いた人が見たメッセージが文字列配列で返されます.
せいげんじょうけん
recordは、1または100000以下の文字列を含む配列です.
次はrecordの文字列の説明です.
[ユーザID]ユーザは[ニックネーム]でチャットルームに入る-[Enter[ユーザID][ニックネーム](ex.[Enter uid 1234 Muzi])
[ユーザID]ユーザチャットルームを終了する-[ユーザID](ex.[Leaveuid 1234])
[ユーザID]ユーザニックネームを[ユーザ名]-[ユーザIDを変更]
🧩 もんだいぶんせき
"Enter uid1234 Muzi"
最終更新ニックネーム
🏁 説明する
# Programmers _ Lv.2 오픈채팅방 2019 KAKAO BLIND RECRUITMENT
def solution(record, id=[], answer=[]):
for r in record:
id.append(r.split()[1])
dic_id = {x : '' for x in id} # 바뀌는 닉네임을 계속 업데이트하며 아이디와 최종 닉네임을 딕셔너리에 저장
for r in record:
if len(r.split()) > 2: # Leave일 때 닉네임은 바뀌지 않으므로 제외
dic_id.update({r.split()[1]:r.split()[2]})
for r in record:
if r.split()[0] == 'Enter': # Change일 때는 채팅방에 아무런 변화가 없으므로 출력하지 않음
answer.append(f'{dic_id[r.split()[1]]}님이 들어왔습니다.')
elif r.split()[0] == 'Leave':
answer.append(f'{dic_id[r.split()[1]]}님이 나갔습니다.')
return answer
Reference
この問題について([Programmers](python)オープンチャット2019 KAO BLIND RECRUIMENT), 我々は、より多くの情報をここで見つけました https://velog.io/@richeberry/Programmerspython-오픈-채팅방-2019-KAKAO-BLIND-RECRUITMENTテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol