새소식

Computer Science/코딩테스트 문제 풀이

[N시간만에 끝내는 Python 코딩테스트] 8편 : 2019 카카오 코딩테스트 1번 오픈 채팅방

  • -

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

 

프로그래머스

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

programmers.co.kr

https://www.youtube.com/watch?v=t0cfxLWRLzY

 

정말 옛날 코테는 쉬웠구나 싶다. 

 

1. 입력을 split로 recode의 명령어들을 나눠 받자

2.1 떠나고 나간게 인지되면 기존에 기록된 이름들을 바꿔준다. 

2.2 채팅방 안에서 Change를 하면 기존에 기록된 이름들을 바꿔준다.

3. 바뀐 기록들 출력 


내가 푼 코드 

def solution(recode):
    answer = []
    # 1. split으로 recode의 명령어들을 나눠 받자 
    # 2.1 떠나고 나간게 인지되면 기존에 기록된 이름들을 바꿔준다. 
    # 2.2 채팅방 안에서 Change를 하면 기존에 기록된 이름들을 바꿔준다. 
    # 3. 바뀐 기록들 출력 
    res = []
    tmp = {}
    for re in recode:
        info = re.split(' ')
        if info[0] == 'Enter':
            tmp[info[1]] = info[2]
            res.append((info[1],'Enter'))
        elif info[0] == 'Leave':
            res.append((info[1],'Leave'))
        else:
            tmp[info[1]] = info[2]
    
    for uid, com in res:
        if com == 'Enter':
            txt = '{}님이 들어왔습니다.'.format(tmp[uid])
            answer.append(txt)
        if com == 'Leave':
            txt = '{}님이 나갔습니다.'.format(tmp[uid])
            answer.append(txt)
        
    return answer 
    

if __name__=="__main__":

    recode = ['Enter uid1234 Muzi', 
            'Enter uid4567 Prodo',
            'Leave uid1234',
            'Enter uid1234 Prodo',
            'Change uid4567 Ryan']
    
    print(solution(recode))

 


강의에서 푼 방법 

def solution(recode):
    answer = []
    user = {}
    
    for log in recode:
        logSplit = log.split(' ')
        if logSplit[0] == 'Enter':
            user[logSplit[1]] = logSplit[2]
            answer.append([logSplit[1], '님이 들어왔습니다.'])
        elif logSplit[0] == 'Leave':
            answer.append([logSplit[1], '님이 나갔습니다.'])
        elif logSplit[0] == 'Change':
            user[logSplit[1]] = logSplit[2]
    
    answer = [user[i[0]] + i[1] for i in answer]
    
    return answer 


if __name__=="__main__":

    recode = ['Enter uid1234 Muzi', 
            'Enter uid4567 Prodo',
            'Leave uid1234',
            'Enter uid1234 Prodo',
            'Change uid4567 Ryan']
    
    print(solution(recode))

 

뭐 비슷하게 푼거 같다.

쉽네

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.