본문 바로가기

개발/Spring

[프로그래머스] Level2_오픈채팅방

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

정답 코드

def solution(record):
    dic = {}
    result = []
    for com in record:
        if com.split(" ")[0] == "Enter" or com.split(" ")[0] == "Change":
            dic[com.split(" ")[1]] = com.split(" ")[2]

    for com in record:
        if com.split(" ")[0] == "Enter":
            result.append("{}님이 들어왔습니다.".format(dic[com.split(" ")[1]]))
        elif com.split(" ")[0] == "Leave":
            result.append("{}님이 나갔습니다.".format(dic[com.split(" ")[1]]))

    return result

 

 

틀린 코드

class record_class:
    def __init__(self, name, com):
        self.name = name
        self.com = com

    def change(self, name, com):
        self.name = name
        self.com = com

    def toString(self):
        return self.name + "님이 " + self.com


def solution(record):
    record_dic = {}
    record_list_dic = {}
    result = []

    for i in record:
        com = i.split(" ")

        if com[0] == "Enter":
            record_dic[id] = com[2]
            result.append(record_class(com[2], "들어왔습니다."))
            if id in record_list_dic.keys():
                record_list_dic[id].append(len(result) - 1)
            else:
                record_list_dic[id] = [len(result) - 1]
        elif com[0] == "Leave":
            record_list_dic[id].append(len(result) - 1)

    for i in result:
        print(i.toString())
        
        ....

 

지금 보니 딕셔너리로 접근한 것까진 괜찮았는데, 이 이후에 생각이 이상한 길로 빠졌다.

문제를 잘 생각해보면, Change는 그냥 해당 Id 키 값에 name을 변경해주기만 하면 되는건데,,,

나는 어렵게 생각하고, for문을 돌면서 Change가 나왔다면 이전에 추가한 result의 name값을 다 변경해주려고 했다..ㅠㅠ

 

보통 3개월~4개월, 6개월까지 코테를 잡고 있는다고 하는데,, 난 이제 7개월 차 인데도 부족한 부분이 너무 많은 것 같다..ㅠㅠ

실력이 늘고는 있는걸까,,?

'개발 > Spring' 카테고리의 다른 글

JPA란  (0) 2021.07.22
[Spring] MockMvc  (0) 2021.07.20
[Spring] Spring MVC 전체 구조  (0) 2021.06.14
[Spring] 빈 생명주기, 빈 스코프  (0) 2021.05.17
[Spring] 컴포넌트 스캔, 의존 관계 자동 주입  (0) 2021.05.07