Notice
Recent Posts
Link
- Today
- Total
hye-log
[프로그래머스]오픈채팅방(Python) 본문
0. 문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=python3
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
1) 주어진 record 자르기
2) dict에 (id: name) 저장하기
3) 문구 출력하기
2. 입출력
# input
record = ["Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo", "Change uid4567 Ryan"]
# output
answer = ["Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다."]
3. 코드
def solution(record):
answer = []
# record 자르기
record_pre = [] # 자른 record 저장할 곳
for i in range(len(record)):
record_pre.append(record[i].split(' ')) # 띄어쓰기 단위로 자르기
# dict에 (id: name) 저장하기
record_dict = {} # record의 (id: anme) 저장할 곳
for i in range(len(record_pre)):
if record_pre[i][0] == 'Enter' or record_pre[i][0] == 'Change': # Enter거나 Change이면
record_dict[record_pre[i][1]] = record_pre[i][2] # dict에 (uid, name) 쌍 추가
# 문구 출력하기
for i in range(len(record_pre)):
name = record_dict[record_pre[i][1]]
if record_pre[i][0] == 'Enter':
answer.append(name + '님이 들어왔습니다.')
if record_pre[i][0] == 'Leave':
answer.append(name + '님이 나갔습니다.')
return answer
실행 결과
4. 알게된 점
1) dict 활용
처음에는 닉네임이 변경하면 해당하는 유저 아이디를 찾아 닉네임을 바꾸는 방식으로 코드를 작성했는데,
만약 데이터가 많아지는 경우 반복문도 증가하고 비효율적이라고 판단하여,
유저 아이디와 닉네임을 딕셔너리 형태로 저장하는 방법으로 코드를 작성함
5. Github
https://github.com/iihye/Algorithm/blob/main/Programmers/open_chatting.py
GitHub - iihye/Algorithm
Contribute to iihye/Algorithm development by creating an account on GitHub.
github.com
728x90
'CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스]H-Index(Python) (0) | 2022.08.23 |
---|---|
[프로그래머스]멀쩡한 사각형(Python) (0) | 2022.08.19 |
[프로그래머스]문자열 압축(Python) (0) | 2022.08.12 |
[프로그래머스]K번째수(Python) (0) | 2022.08.11 |
[프로그래머스]완주하지 못한 선수(Python) (0) | 2022.08.10 |
Comments