[프로그래머스] 오픈채팅방

cheeeese·2022년 9월 1일
0

코딩테스트 연습

목록 보기
139/151
post-thumbnail

📖 문제

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

💻 내 코드

def solution(record):
    answer = []

    # 각각의 문자열들을 모두 split()을 통해 공백 기준으로 나누어 리스트에 담음
    res=list(record[i].split(" ") for i in range(len(record))) 
  
    # uid와 이름을 저장할 dictionary 생성
    name=dict([])

    for i in range(len(res)):
        if res[i][0] == 'Enter' or res[i][0] == 'Change':
        # Enter 또는 Change라면
            name[res[i][1]] = res[i][2]
            # dictionary에 uin를 기준으로 이름을 저장해준다
            # 만약 이름을 바꾸거나 바꾸고 다시 들어오면 uid가 저장되어 있으므로 저장이 아닌 닉네임 수정이 된다

        else:
            continue

    # 결과의 형식으로 바꾸어줌
    for i in range(len(res)):
        if res[i][0]=='Enter':
            answer.append(name[res[i][1]]+"님이 들어왔습니다")
        elif res[i][0]=='Leave':
            answer.append(name[res[i][1]]+"님이 나갔습니다")

    print(answer)

    return res

solution(["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"])

💡 풀이

  • dictionary를 사용하여 풀었음

0개의 댓글

관련 채용 정보