카카오10 [Swift][프로그래머스][LV_2] 주차 요금 계산 요구능력 : 문제 이해능력 코드설명 : 무슨 알고리즘을 썻다기 보다는 문제를 이해하고 어떤방식으로 풀어나갈 수 있는지를 보는 문제같다. 내가 생각하는 이 문제에서 핵심 1) 차량번호와 입출차시간을 어떻게 저장할 것인지 2) 시간계산을 분으로 바꿔서 할 줄 아는지 3) 문자열을 다룰줄 아는지 4) 출차시간이 없을때 처리를 어떻게 할 것인지 5) 나머지 올림을 어떻게 처리할 것인지 1)의 경우 차량번호별로 입출차시간을 배열로 받아서 입출차 시간을 저장한다. var carNumTimeDict = [String: [Int]]()//차량번호, 입출차시간 2)과 3)의 경우 문자열을 분리해서 시간을 분으로 환산해서 1)의 딕셔너리에 저장해주었다. for i in records{ let a = i.split(sepa.. 2022. 2. 21. [Swift][프로그래머스][LV_1] 신고결과받기 요구능력 : 딕셔너리의 활용 코드설명 : 문제를 풀어봤는데 O(n^2)으로 풀어서 몇개의 테스트케이스에서 시간초과가 나왔다. 신고자와 피신고자의 이름을 맞추다가 시간초과가 난것이다. 이 부분에서 생각을 잘 해야되는데, Dictioary의 특성상 키는 중복되지 않는다. 그리고 신고한사람이 자신이 신고한사람의 목록을 갖고있어봐야 소용이없다. 그래서 피신고자(신고당한사람)가 신고자를 Dictionary에 저장하고 자신을 신고한 사람이 k명이 넘을경우, 자신을 신고한 사람에 1씩 더해줌으로써 경고메일을 표현해준다. 이 문제는 이게 핵심이다. for i in toDict{ if i.value.count >= k { for v in i.value{ receiveDict[v]! += 1 } } 후기 : 커다란 사고가.. 2022. 2. 19. 이전 1 2 3 다음