프로그래밍 이야기/파이썬 코딩 테스트 스터디

파이썬 코딩테스트 스터디 5주차 #6 - 오픈 채팅

hoony926 2024. 7. 20. 11:31

 

 

프로그래머스 - 오픈 채팅

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

record result
[
 "Enter uid1234 Muzi",
 "Enter uid4567 Prodo",
 "Leave uid1234",
 "Enter uid1234 Prodo",
 "Change uid4567 Ryan"
]
[
 "Prodo님이 들어왔습니다.",
 "Ryan님이 들어왔습니다.",
 "Prodo님이 나갔습니다.",
 "Prodo님이 들어왔습니다."
]

 

Enter랑 Change만 3단어로 묶여있고

Leave는 2단어 되어있기 때문에

if len(li) ==3이라고 썼다.

 

Dictionary 특성상 1개의 키값에 1개의 값만 저장이 되기 때문에

나중에 입력된 Key, Value 쌍으로 저장.

이 부분을 활용해서 간단히 푼 문제

 

문장.split()을 쓰면 띄어쓰기가 default로 되고

split('/') 슬래쉬, split(',') 콤마  이런식으로 사용할 수 도있다.

def solution(record):
    answer = []
    
    dict = {}
    
    for i in record :
        li = i.split()
        if len(li) == 3:    #enter or change
            dict[li[1]] = li[2]
        
    for i in record :
        li = i.split()
        
        if li[0] =="Enter":
            answer.append(dict[li[1]]+"님이 들어왔습니다.")
        elif li[0] == "Leave" :
            answer.append(dict[li[1]]+"님이 나갔습니다.")
        
    return answer