오픈채팅방의 룰에 따라 안내 멘트를 작성하는 문제이다.
풀이 출처 : https://velog.io/@godiva7319
(풀이 출처에 매우 자세하게 나와있다.)def solution(record): answer = [] dic = {} for i in record : i_split = i.split() if len(i_split) == 3 : dic[i_split[1]] = i_split[2] for j in record : j_split = j.split() if j_split[0] == "Enter" : answer.append("%s님이 들어왔습니다." % dic[j_split[1]]) elif j_split[0] == "Leave" : answer.append("%s님이 나갔습니다." % dic[j_split[1]]) return answer
- 먼저 각 요소값을 호출하면
"Enter uid1234 Muzi"
이런 식으로 호출된다.
- 이 요소 값을
split()
해주어 띄어쓰기를 기준으로 나눠준다.- Leave는 아이디를 바꿔주지 않기 때문에
split()
결과의 길이를 3으로 제한하여 제외한다.- 딕셔너리는 중복값을 허용하지 않기 때문에
Key
값을 기준으로 마지막에 저장된Key
값과Value
값이 남는다.- 한번 더
for
문을 열어준다.
- 다시한번
split()
을 해준다.- 직접적으로
split
결과의0
번째 요소값이Enter
이면 들어왔다고,Leave
이면 나갔다고 문자열을 정답리스트에append()
해준다.- 이 때
Change
는 결과에 표현 할것이 없기 때문에 들어가지 않는다.
- 내가 모르는 함수가 없는게 부끄럽다.
- 다시 나도 할 수 있다라고 생각하고 한번 문제를 풀어봐야겠다.