프로그래머스 - [1차] 캐시
·
Algorithm/programmers
LRU는 가장 오랫동안 쓰이지 않던 값을 캐시에서 없앤다는 특징이 있습니다 LRU란?LRU는 Least Recently Used 의 약자로 가장 오랫동안 사용되지 않는 값을 지우는 페이지 교체 알고리즘 입니다.즉 구현하기 위해서는 캐시의 크기를 넘게 값이 들어오게 되면 제일 오래된 값을 비우고 새로운 값을 추가해야합니다. 캐시란?캐시는 메모리와 CPU 간의 속도 차이를 완화하기 위해 메모리의 데이터를 미리 가져와 저장해두는 임시 장소입니다.필요한 데이터를 미리 가져와 저장하여 새로운 값을 검색할 때 메모리로 값을 찾아가는 대신 캐시를 먼저 확인 후 원하는 데이터를 가져감으로서 속도를 향상시킵니다. 캐시 히트: 원하는 데이터를 캐시에서 검색했을 때 존재하는 경우, 해당 데이터를 바로 사용할 수 있게 됩니다..
프로그래머스 - 주차 요금 계산 (2022카카오 블라인드 채용)
·
Algorithm/programmers
주차 요금 계산은 딕셔너리로 해결할 수 있는 구현 문제입니다  import Foundationfunc solution(_ fees:[Int], _ records:[String]) -> [Int] { var dics: [String: Int] = [:] var cars: [String: Int] = [:] var totalFees: [String: Int] = [:] for record in records { let info = record.split(separator: " ").map { String($0) } let time = info[0].split(separator: ":").map { Int($0)! } let minute = t..
프로그래머스 - 두 큐 합 같게 만들기 (2022카카오 테크 인턴쉽) 시간초과 해결
·
Algorithm/programmers
시간초과 발생 코드아래대로 구현한다면 로직은 맞지만 시간초과가 발생합니다.이유는 removeFirst() 로 처리하기에는 시간복잡도가 허용하지 않기 때문입니다. removeFirst() 를 사용하게 되면 첫번째 값을 뺀 다음 뒤에있는 모든 값들을 모두 한칸씩 앞으로 땡겨야하는 부담이 발생하기 때문에 로직은 간단해질 수 있지만 성능적인 면은 조금 떨어집니다.func solution(_ queue1:[Int], _ queue2:[Int]) -> Int { var cnt = 0 var q1 = Queue() queue1.forEach { value in q1.enqueue(value) } var q2 = Queue() queue2.forEach { value..
프로그래머스 - 과제 진행하기
·
Algorithm/programmers
import Foundationfunc solution(_ plans:[[String]]) -> [String] { let planList = plans.sorted(by: { $0[1]
프로그래머스 - 제일 작은 수 제거하기, 시간초과 해결
·
Algorithm/programmers
좋은 코드를 만들기 위해 메서드의 시간복잡도를 이해하는 것은 중요합니다 다음과 같은 코드는 시간 초과가 발생하는 코드입니다.당연한거지만 실수할 수 있으므로 하나하나 뜯어보는 습관이 중요합니다. filter 클로저 내부에 min 을 사용해버리면 filter 의 시간복잡도는 O(n) 이고 min 또한 O(n) 이므로 O(n^2)이 되어 버립니다.func solution(_ arr:[Int]) -> [Int] { let result = arr.filter { $0 != arr.min()! } return (result.isEmpty || result.count == 1) ? [-1] : result} 이를 해결하기 위해서는 min 을 한번만 사용할 수 있도록 다음과 같이 구현합니다.func solu..
프로그래머스 - 소수 만들기
·
Algorithm/programmers
import Foundationfunc check(_ n: Int) -> Bool { if n Int { var answer = 0 for i in 0..
ytw_developer
'Algorithm/programmers' 카테고리의 글 목록 (4 Page)