관리 메뉴

Mini

프로그래머스 오픈채팅방 파이썬 // 해쉬맵 본문

Algorithm/programmers

프로그래머스 오픈채팅방 파이썬 // 해쉬맵

Mini_96 2023. 7. 13. 10:38

코딩테스트 연습 - 오픈채팅방 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr

* 의사코드

- 해쉬맵에 {uid : 최종닉네임} 으로 저장한다.

1. split해서 2차원배열에담기

2. Enter,Change 일때마다 닉네임바꿔주기 => 해쉬맵에는 최종닉네임 저장됨

3. uid에 맞는 최종닉네임들 출력

def solution(record):

    answer = []
    m=dict()
    
    records=[]
    # for i in range(10):
    #     records.append([])
        
    for str in record:
        temp=str.split(' ')
        #print(temp)
        records.append(temp)   
    #print(records)
    
    #############입력끝#################
    
    for v in records:
        #print(v[0])
        if(v[0]=='Enter'):
            m[v[1]]=v[2]
        elif(v[0]=='Change'):
            m[v[1]]=v[2]
        elif(v[0]=='Leave'):
            pass
        
    #print(m)
    ##############해시맵에 최종닉넴저장 끝#########
    
    for v in records:
        if(v[0]=='Enter'):
            answer.append(m[v[1]]+"님이 들어왔습니다.")
        elif(v[0]=='Change'):
            pass
        elif(v[0]=='Leave'):
            answer.append(m[v[1]]+"님이 나갔습니다.")
    
    
    
    #print(records)
    #print(p(record))
#     for cmd, uid, nick for record:
#         print(cmd, uid, nick)
    
    
    return answer