프로그래머스 - 오픈채팅방

박상진·2022년 2월 17일
0

프로그래머스

목록 보기
55/65
post-thumbnail

자세한 설명은 링크 참고

오픈채팅방의 룰에 따라 안내 멘트를 작성하는 문제이다.

풀이

풀이 출처 : https://velog.io/@godiva7319
(풀이 출처에 매우 자세하게 나와있다.)

def solution(record):
    answer = []
    dic = {}

    for i in record :
        i_split = i.split()
        if len(i_split) == 3 :
            dic[i_split[1]] = i_split[2]

    for j in record :
        j_split = j.split()
        if j_split[0] == "Enter" :
            answer.append("%s님이 들어왔습니다." % dic[j_split[1]])
        elif j_split[0] == "Leave" :
            answer.append("%s님이 나갔습니다." % dic[j_split[1]])

    return answer
  1. 먼저 각 요소값을 호출하면 "Enter uid1234 Muzi"이런 식으로 호출된다.
    • 이 요소 값을 split()해주어 띄어쓰기를 기준으로 나눠준다.
    • Leave는 아이디를 바꿔주지 않기 때문에 split()결과의 길이를 3으로 제한하여 제외한다.
    • 딕셔너리는 중복값을 허용하지 않기 때문에 Key값을 기준으로 마지막에 저장된 Key값과 Value값이 남는다.
  2. 한번 더 for문을 열어준다.
    • 다시한번 split()을 해준다.
    • 직접적으로 split결과의 0번째 요소값이 Enter이면 들어왔다고, Leave이면 나갔다고 문자열을 정답리스트에 append()해준다.
    • 이 때 Change는 결과에 표현 할것이 없기 때문에 들어가지 않는다.

느낀점

  1. 내가 모르는 함수가 없는게 부끄럽다.
  2. 다시 나도 할 수 있다라고 생각하고 한번 문제를 풀어봐야겠다.
profile
개발자가 되고싶당

0개의 댓글