728x90
문제
내 풀이
def solution(record):
answer = []
member_dict = {}
for each_record in record:
each_record_list = each_record.split(" ") #['Enter', 'uid1234', 'Muzi']
#멤버 리스트를 만들어준다. ex) {'uid1234' : 'Muzi'}
try:
member_dict[each_record_list[1]] = each_record_list[2]
except IndexError:
pass
#누가 들어오고 나갔는지 기록을 남긴다.
#ex) ['uid1234 들어왔습니다.', 'uid4567 들어왔습니다.', 'uid1234 나갔습니다.', 'uid1234 들어왔습니다.']
if each_record_list[0] == "Enter":
answer.append("{} 들어왔습니다.".format(each_record_list[1]))
elif each_record_list[0] == "Leave":
answer.append("{} 나갔습니다.".format(each_record_list[1]))
else:
pass
for idx, management_record in enumerate(answer):
management_record_list = management_record.split(" ")
answer[idx] = answer[idx].replace(management_record_list[0], '{}님이'.format(member_dict[management_record_list[0]]))
return answer
👉🏻누가 들어가고 나갔는지와 유저 아이디와 닉네임을 매칭하는게 중요하다고 생각해서 아래와 같은 순서로 풀었다.
- record를 for문으로 돌리며 공백을 기준으로 each_record_list라는 리스트로 나누었다.
- member_dict라는 딕셔너리에 유저 아이디(each_record_list[1])를 키로 닉네임(each_record_list[2])을 값으로 넣었다.
- each_record_list[0]으로 해당 유저가 카톡방에 들어왔는지 나갔는지 판단해 아이디와 내용을 answer에 저장한다.
- 다시 for문을 돌리며 answer에 저장된 유저 아이디를 닉네임으로 바꿔준다.
✍🏻IndexError: 채팅방을 나가는 경우(ex)"Leave uid1234") each_record_list[2]가 존재하지 않으므로 에러가 떠서 except로 처리했다.
✍🏻format: 문자열 중간 넣고 싶은 자리에 {}중괄호를 넣고 format을 이용해 넣고 싶은 값을 설정해준다.
🐰시간이 좀 걸리긴 했는데 첫시도에 통과해서 짱신낭
728x90
'그 땐 Algorithm했지 > 그 땐 Programmers했지' 카테고리의 다른 글
[self-study/level 1] SQL | 여러 기준으로 정렬하기 | SELECT (0) | 2022.03.05 |
---|---|
[self-study/level 1] SQL | 동물의 아이디와 이름 | SELECT (0) | 2022.03.03 |
[self-study/level 1] SQL | 어린 동물 찾기 | SELECT (0) | 2022.03.02 |
[self-study/level 1] SQL | 아픈 동물 찾기 | SELECT (0) | 2022.03.01 |
[self-study/level 1] 체육복 | 탐욕법(Greedy) - 해결편 (0) | 2022.02.28 |