[프로그래머스] 3문제

조은지·2021년 11월 2일
0

1. 오픈채팅방

def solution(records):
    answer = []
    uid_name={}

    for record in records:
        line = record.split()
        if len(line)==3:
            uid_name[line[1]]=line[2]
    
    for record in records:
        line = record.split()
        if line[0]=="Enter":
            answer.append(uid_name[line[1]]+"님이 들어왔습니다.")
        elif line[0]=="Leave":
            answer.append(uid_name[line[1]]+"님이 나갔습니다.")
    return answer

주어진 조건 그대로 구현을 하면 되는 문제였다.
여기서 주의해야 할 점은
"닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다." 는 조건이었다.

uid와 name쌍으로 저장하기 위해서 딕셔너리를 사용했고, 탐색을 2번해서 모든 메시지에 적용이 되도록 했다.

2. 없는 숫자 더하기

def solution(numbers):
    answer = 45-sum(numbers)
    return answer

3. 음양 더하기

def solution(absolutes, signs):
    answer=0
    for i in range(len(signs)):
        if signs[i] is True:
            answer+=absolutes[i]
        else:
            answer-=absolutes[i]
    return answer

나는 단순 인덱스로 풀었지만, 다른 풀이를 보니 zip함수를 사용한 코드가 있었다.

zip함수 사용법
https://www.daleseo.com/python-zip/

0개의 댓글