코테 준비/Hash map
[프로그래머스] 오픈채팅방
imsmile2000
2024. 2. 2. 10:59
처음에는 노가다로 풀었는데 25번 테스트케이스부터 시간 초과가 났다...
def solution(record):
answer = []
id=[]
for i in record:
i=i.split(' ')
if i[0]=='Enter':
id.append(['Enter',i[1],i[2]])
for j in range(len(id)):
if id[j][1]==i[1] and len(id[j])==3:
id[j][2]=i[2]
elif i[0]=='Leave':
for j in range(len(id)):
if id[j][1]==i[1]:
id.append(['Leave',i[1],id[j][2]])
break
elif i[0]=='Change':
for j in range(len(id)):
if id[j][1]==i[1]:
id[j][2]=i[2]
for i in id:
if i[0]=='Enter':
answer.append(i[2]+'님이 들어왔습니다.')
elif i[0]=='Leave':
answer.append(i[2]+'님이 나갔습니다.')
return answer
이중 for문 때문이다. 따라서 dictionary로 바꾸고 이중 for문을 제거하였다.
def solution(record):
answer = []
id={}
for i in record:
i=i.split(' ')
if i[0]=='Enter' or i[0]=='Change':
id[i[1]]=i[2]
for r in record:
r=r.split(' ')
if r[0]=='Enter':
answer.append(id[r[1]]+'님이 들어왔습니다.')
elif r[0]=='Leave':
answer.append(id[r[1]]+'님이 나갔습니다.')
return answer