본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[프로그래머스] Lv.2 오픈채팅방 - Python

by chaemj97 2022. 6. 5.
728x90

https://programmers.co.kr/learn/courses/30/lessons/42888

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr


  • 생각
    • 처음에는 변화가 있을 때마다 answer에 리스트를 추가/이름 변경을 하려고 했으나 계속 런타임 에러가 났다.
    • 런타임 에러가 해결이 되지 않아 문제를 다시 읽으니 모든 기록이 처리된 후라는 글자가 보였다.
      • 그래서 이름을 변경한 사람들을 모두 처리한 후 answer 리스트를 작성하기로 바꿨다.
    • 문제를 꼼꼼히 읽어야겠다..
  • 코드
def solution(record):
    answer = []
    user = {}
    
    # 이름 변경한 사람 처리
    for r in record:
        if r.split()[0] != 'Leave':
            user[r.split()[1]] = r.split()[2]
    
    # 결과 출력
    for r in record:
        if r.split()[0] == 'Enter':
            answer += [f'{user[r.split()[1]]}님이 들어갔습니다.']
        elif r.split()[0] == 'Leave':
            answer += [f'{user[r.split()[1]]}님이 나갔났습니다.']

    return answer

  • 풀면서 얻은 점
    • 딕셔너리에 키가 있는지 체크하기
      • 찾고자 하는 키 in 딕셔너리
        • True / False
      • 딕셔너리. get(찾고자 하는 키)
        • 키값에 해당하는 값 / 만약 해당 키가 없는 경우 None
728x90
반응형

댓글