[1스4코2파] #148. LeetCode daily 1396. Design Underground System

gunny·2023년 5월 31일
0

코딩테스트

목록 보기
149/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[3코1파] 2023.01.04~ (148일차)
[4코1파] 2023.01.13~ (139일차)
[1스4코1파] 2023.04.12~ (50일차)
[1스4코2파] 2023.05.03 ~ (29일차)

Today :

2023.05.31 [148일차]
LeetCode Daily
1396. Design Underground System
https://leetcode.com/problems/design-underground-system/description/

1396. Design Underground System

문제 설명

https://leetcode.com/problems/design-underground-system/description/

문제 풀이 방법

옛날에 했던 계산기 class 만드는거 같음
톱밥
.. 맞겠지?
나 또 제약사항 못보고 내맘대로 썼냐

내 코드

class UndergroundSystem:

    def __init__(self):
        self.system_dict = {}
        self.cal_dict = {}

    def checkIn(self, id: int, stationName: str, t: int) -> None:
        self.system_dict[id] = [stationName,t]
        return

    def checkOut(self, id: int, stationName: str, t: int) -> None:
        time = abs(self.system_dict[id][1] - t)      

        if self.system_dict[id][0]+'-'+stationName not in self.cal_dict.keys():
            self.cal_dict[self.system_dict[id][0]+'-'+stationName] = [time]              
        else :
            self.cal_dict[self.system_dict[id][0]+'-'+stationName].append(time)
        return time

    def getAverageTime(self, startStation: str, endStation: str) -> float:
        if len(self.cal_dict[startStation+'-'+endStation]) !=0:
            return sum(self.cal_dict[startStation+'-'+endStation]) / len(self.cal_dict[startStation+'-'+endStation])        

증빙

여담

이제 모듈화 해야겠다

profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글