Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬 3
- 알고리즘스터디
- python3
- 이진탐색
- dp
- 구현
- 정렬
- 백준
- 프로그래머스
- 개인회고
- 부스트캠프_AITech_3기
- 부스트캠프_AITech3기
- 그리디
- Level1
- Level2
- U_stage
- 주간회고
- 이코테
- 글또
- 최단경로
- 백트랙킹
- 그래프이론
- mrc
- Level2_PStage
- ODQA
- 단계별문제풀이
- dfs
- 기술면접
- 다시보기
- 알고리즘_스터디
Archives
- Today
- Total
국문과 유목민
(Week2)[구현] 오픈채팅방 본문
주간 코딩스터디 때 푼 문제들을 정리하고 있습니다. 구체적인 문제에 대한 정보는 게시글 내 링크를 살펴봐주세요
소요시간: 20 분
1. 문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/42888
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
2. 접근 방식
- 이 문제의 쟁점은 순간마다 로그를 찍을 필요가 없고, "최종"으로 찍히는 결과값만 보면 된다는 것이라고 생각
- 아이디에 따른 닉네임의 변화를 마지막에서만 확인하면 된다.
- 기록 로그는 오히려 더 쉽게 Change부분만 제외시켜서 찍고자 했다.
3. 코드
def solution(record):
user_nick, record_id = {}, []
answer = []
# record 분할
for splits in record:
split_ls = splits.split()
print(split_ls)
if len(split_ls) == 3:
user_nick[split_ls[1]] = split_ls[2]
record_id.append((split_ls[0],split_ls[1]))
# record에 따라 출력
for action, user_id in record_id:
if action =="Enter":
answer.append(f"{user_nick[user_id]}님이 들어왔습니다.")
elif action =="Leave":
answer.append(f"{user_nick[user_id]}님이 나갔습니다.")
else:
continue
return answer
4. 코멘트
- 예전같으면, fstring이나 split 등에 익숙하지 않아서 꽤 헤맸을 것 같은데 좀 수월하게 풀게 된 것 같다.
- 예전에는 Level1도 쩔쩔 맸던 것 같은데, Level2도 이제는 부담감이 조금은 덜 해진 것 같다.
'알고리즘_코딩테스트 > 주간코딩 스터디 (주코스)' 카테고리의 다른 글
(Week3)[구현] 순위검색 (0) | 2022.06.20 |
---|---|
(Week3)[BFS] 타겟넘버 (0) | 2022.06.20 |
(Week2)[재귀] 하노이의 탑 (0) | 2022.06.20 |
(Week1)[N진법] n진수 게임 (0) | 2022.06.20 |
(Week1)[Heap] 더 맵게 (0) | 2022.06.20 |