본문 바로가기

Algorithm/문제풀이_백준196

[Swift][누적합] 백준 11659번 (구간 합 구하기4) 요구능력 누적합 문제풀이 기본적인 누적합에 대한 개념을 숙지한다면 쉽게 풀리는 문제이다. 후기 누적합의 개념에 대해 알아보았다! 코드 import Foundation let nm = readLine()!.split(separator: " ").map{Int(String($0))!} let n = nm[0] let m = nm[1] var arr = readLine()!.split(separator: " ").map{Int(String($0))!} var str = "" var prefixSum = Array(repeating: 0, count: arr.count) prefixSum[0] = arr[0] for i in stride(from: 1, to: arr.count, by: 1){ prefixSum.. 2022. 5. 30.
[Swift][우선순위 큐] 백준 1655번 (가운데를 말해요) 요구능력 우선순위 큐, 힙 문제풀이 두 개의 힙을 준비하고 leftHeap(최대 힙) rightHeap(최소 힙) 1) left와 right의 길이가 같으면 left에 넣는다. 2) left에 들어온 값이 right의 루트노드보다 크면 스위칭 두개의 힙으로 중간값을 구할 수 있는 문제가 있구나 하고 이해하자! 후기 빠른입출력코드 안적으면 시간초과난다.. 코드 struct Heap { private var elements: [T] = [] private let sortFunction: (T, T) -> Bool init (sortFunction: @escaping (T, T) -> Bool){ self.sortFunction = sortFunction } var isEmpty: Bool { return s.. 2022. 5. 27.
[Swift][우선순위 큐] 백준 11286 (절댓값 힙) 요구능력 우선순위 큐, 힙 문제풀이 최소힙 문제에서 힙에 구현해놓은 클로저를 이용해서 절댓값 비교와 절댓값이 같을 때 처리만 해주면 된다. 후기 스위프트가 이런거 처리할때는 편리하다. 코드 struct Heap { private var elements: [T] = [] private let sortFunction: (T, T) -> Bool init (sortFunction: @escaping (T, T) -> Bool){ self.sortFunction = sortFunction } var isEmpty: Bool { return self.elements.count == 1 } func leftChild(of index: Int) -> Int { return index * 2 } func rightCh.. 2022. 5. 27.
[Swift][우선순위 큐] 백준 1927, 11279 (최소힙, 최대힙) 요구능력 우선순위 큐 (힙) 문제풀이 힙과 우선순위 큐의 이론을 알고 생각하면서 따라쳐보시면 이해하기 쉽습니다. 저도 그렇게 익혔습니다. sortFunction을 로 할경우 최대힙이됩니다. 후기 우선순위큐, 힙에대해 알고있으면 풀리는 간단한문제 코드 import Foundation struct Heap { private var elements: [T] = [] private let sortFunction: (T, T) -> Bool init (sortFunction: @escaping (T, T) -> Bool){ self.sortFunction = sortFunction } var isEmpty: Bool { return self.elements.count == 1 } func leftChild(of .. 2022. 5. 27.