https://programmers.co.kr/learn/courses/30/lessons/42888
카카오톡 오픈채팅방에서 사용자의 출입을 관리자에게 리스트 형식으로 알려주는 것인데, 이름을 바꿔서 다시 들어온 사용자의 경우 전후 모두 바뀐 이름으로 작성해야한다. 또 말로만 설명하면 헷갈리니 사진으로
문제를 알고 들어오셨겠죠잉,,,,? 더 자세하게 필요 없으시죠잉,,,?
def solution(record):
dic = {}
answer = []
for i in range(len(record)-1,-1,-1):
record[i] = record[i].split()
if(record[i][1] not in dic.keys()):
dic[record[i][1]] = record[i][2]
for s in record:
if(s[0] == "Enter"):
answer.append("{0}님이 들어왔습니다.".format(dic[s[1]]))
elif(s[0] == "Leave"):
answer.append("{0}님이 나갔습니다.".format(dic[s[1]]))
return answer
def solution(record):
dic = {}
answer = []
for i in range(len(record)-1,-1,-1):
record[i] = record[i].split()
if(record[i][1] not in dic.keys() and record[i][0]!="Leave"):
dic[record[i][1]] = record[i][2]
for s in record:
if(s[0] == "Enter"):
answer.append("{0}님이 들어왔습니다.".format(dic[s[1]]))
elif(s[0] == "Leave"):
answer.append("{0}님이 나갔습니다.".format(dic[s[1]]))
return answer
문제는 Leave시 user name이 같이 주어지지 않는데 record[i][2]에 접근해서 인덱스 에러가 난 것이었다.
+) 첫번째 for문을 거꾸로 돈거는 그러면 재입장이나, 이름 변경시 계속해서 dic을 변경할 필요가 없으니까 조금 더 효율적이지 않을까 싶었는데,,, 뭐 그냥 해도 크게 차이 없더라. 왤까. 왠지 아시는분 댓글 좀 달아주시면 아주 굽신굽신
최대 : (146.50ms, 67.1MB)