sm 기술 블로그
오픈채팅방 (2019 KAKAO BLIND RECRUITMENT) - 파이썬 본문
def solution(record):
answer = []
userDict = dict()
for val in record:
tmp = val.split(" ")
if(tmp[0] == "Enter"):
answer.append(tmp[1] + "님이 들어왔습니다.")
userDict[tmp[1]] = tmp[2]
elif(tmp[0] == "Leave"):
answer.append(tmp[1] + "님이 나갔습니다.")
else:
userDict[tmp[1]] = tmp[2]
for i in range(len(answer)):
userIdTmp = answer[i]
userId = userIdTmp[0:userIdTmp.index("님")]
answer[i] = answer[i].replace(userId,userDict[userId])
return answer
문제요약
유저의 닉네임과 Enter, Leave, Change에 따라 결과를 만들어라.
설명
change 혹은 나가고 들어올때 닉네임이 변경되는경우가 있기 때문에 바로 answer에 넣어주지 않고 딕셔너리를 사용하였다.
for val in record:
tmp = val.split(" ")
if(tmp[0] == "Enter"):
answer.append(tmp[1] + "님이 들어왔습니다.")
userDict[tmp[1]] = tmp[2]
elif(tmp[0] == "Leave"):
answer.append(tmp[1] + "님이 나갔습니다.")
else:
userDict[tmp[1]] = tmp[2]
userid는 고유하고, 닉네임은 고유하지 않아(중복 가능, 변경될 수 있음) userid로 먼저 구분을 해주고 answer에 저장해 주었다.
for i in range(len(answer)):
userIdTmp = answer[i]
userId = userIdTmp[0:userIdTmp.index("님")]
answer[i] = answer[i].replace(userId,userDict[userId])
첫번째 로직이 끝나고, 각각의 answer를 거내서 userId에 걸 맞는 구문으로 바꿔준다.
'문제 > 프로그래머스_파이썬' 카테고리의 다른 글
압축(2018 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.21 |
---|---|
주차 요금 계산(2022 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.19 |
k진수에서 소수 개수 구하기(2022 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.18 |
[1차] 뉴스 클러스터링 (2018 KAKAO BLIND RECRUITMENT) - 파이썬 (0) | 2022.10.17 |
튜플 (2019 카카오 개발자 겨울 인턴십) - 파이썬 (0) | 2022.10.10 |
Comments