티스토리 뷰

25번부터 32번까지 시간초과난 코드. 아마 2중 포문을 사용해서 시간초과가 난 것같다.

def solution(record):
    #딕셔너리를 사용하여 Enter Change 일때 그에 맞는 닉네임으로 해시의 값을 바꾸면 됩니다
    answer = []
    res = []
    for i in record:
        temp = i.split()
        res.append(temp)

    for i in range(len(res)):
        for j in range(0, i):
            if res[i][1] == res[j][1]:
                if res[i][0] == 'Change' or res[i][0] == 'Enter':
                    res[j][2] = res[i][2]
                else: #Leave
                    res[i].append(res[j][2])

    for i in range(len(res)):
        if res[i][0] == 'Enter':
            answer.append(res[i][2]+"님이 들어왔습니다.")
        elif res[i][0] == 'Leave':
            answer.append(res[i][2]+"님이 나갔습니다.")


    return answer

그래서 딕셔너리를 이용하여 풀었다!

Enter와 Change일 때 닉네임 값이 들어오므로 Leave일 때는 신경쓰지 않는다.

Enter와 Change이라면 해당 아이디를 딕셔너리의 key로 갖고 value를 닉네임으로 지정해준다. -> 이미 해당 값이 있더라도 뒤에들어오는 닉네임값으로 변경해준다.

 

또 다시 for문을 돌면서 enter와 leave일 때 answer에 -님이 들어왔습니다, 나갔습니다 라는 문자열로 append 시켜준다.

def solution(record):
    answer = []
    res = {}
    for i in record:
        temp = i.split()
        if temp[0] == 'Enter' or temp[0] =='Change':
            res[temp[1]] = temp[2] #아이디를 키로 가지고있는 딕셔너리를 닉네임으로 바꾼다.

    for i in record:
        temp = i.split()
        if temp[0] == 'Enter':
            answer.append(res[temp[1]]+"님이 들어왔습니다.")
        elif temp[0] =='Leave':
            answer.append(res[temp[1]]+"님이 나갔습니다.")

    return answer
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함