시작하는 중
프로그래머스 - 오픈채팅방 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42888
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해당 문제는 문자열의 파싱부터 하는 것이 좋다.
구분도 편하게 스페이스 바로 나누면 쉽게 해뒀음
record를 한번 탐색하며 uid에 닉네임을 저장할 딕셔너리를 만들고 파싱한 문자 중에서 enter나 change가 있다면 닉네임을 update해주는 문제
입퇴장 로그를 담아둘 리스트를 하나 만들었고 나중에 순회하며 리터럴 스트링으로 answer을 만들었다.
1. record를 순회하며 파싱하고
2. 입장인지 퇴장인지 닉네임 변경인지 파악하고
2-1. 닉네임 업데이트
3. 입장이나 퇴장이면 log_list에 문자열과 함께 누가 입퇴장을 했는지 tuple 형태로 저장
4. record 순회가 끝나면 log를 순회하며 리터럴 스트링으로 answer을 도출
def solution(records):
answer = []
nickname_dict = {}
log_list = []
for record in records:
parsing = record.split(" ")
status, uid, *nickname = parsing
if status == "Enter":
nickname_dict[uid] = nickname[0]
log_list += [("님이 들어왔습니다.", uid)]
elif status == "Change":
nickname_dict[uid] = nickname[0]
else:
log_list += [("님이 나갔습니다.", uid)]
for log in log_list:
status, uid = log
answer.append(nickname_dict[uid]+status)
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 미로 탈출 (0) | 2023.02.23 |
---|---|
프로그래머스 - 압축 (0) | 2023.02.22 |
프로그래머스 - 시소 짝꿍 (3) | 2023.02.06 |
프로그래머스 - 숫자 변환하기 (0) | 2023.02.06 |
프로그래머스 - 뒤에 있는 큰 수 찾기 (0) | 2023.02.06 |