-
[프로그래머스] 오픈채팅방Engineering WIKI/Programmers 2022. 5. 2. 22:04
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
내풀이 (1차 실패)
def solution(record): id_dic = {} answer = [] for change in record: id_dic[change.split()[1]] = change.split()[-1] for message in record: if "Enter" in message: answer.append(id_dic[message.split()[1]] + "님이 들어왔습니다.") elif "Leave" in message: answer.append(id_dic[message.split()[1]] + "님이 나갔습니다.") else: continue return answer
내풀이 (2차 성공)
def solution(record): id_dic = {} answer = [] for change in record: if len(change.split()) == 3: id_dic[change.split()[1]] = change.split()[-1] for message in record: if "Enter" == message.split()[0]: answer.append(id_dic[message.split()[1]] + "님이 들어왔습니다.") elif "Leave" == message.split()[0]: answer.append(id_dic[message.split()[1]] + "님이 나갔습니다.") return answer
다른방법 1
def solution(record): result = [] info = {} for r in record: r = r.split() #들어온 경우 if r[0] == "Enter": result.append([r[1], "님이 들어왔습니다."]) info[r[1]] = r[2] #나간경우 elif r[0] == "Leave": result.append([r[1], "님이 나갔습니다."]) #변경된 경우 else: info[r[1]] = r[2] result = list(map(lambda x : info[x[0]]+x[1], result)) return result
'Engineering WIKI > Programmers' 카테고리의 다른 글
[프로그래머스] H-Index (정렬) (0) 2022.05.13 [프로그래머스] 행렬 테두리 회전하기 (0) 2022.05.10 [프로그래머스] 타겟넘버 (0) 2022.05.06 [프로그래머스] 124 나라의 숫자 (0) 2022.05.04 [프로그래머스] 문자열 압축 (0) 2022.05.02 [프로그래머스] 직사각형 별찍기 (0) 2022.05.01 [프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) 2022.04.30 [프로그래머스] 행렬의 덧셈 (0) 2022.04.30