적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

분류 전체보기 568

[Swift 알고리즘] 백준 1966 프린터 큐

○ 프린터 큐 Silver3 (40분) 백준 1966번 프린터 큐 포인터를 사용한 큐로 구현 : 69108KB 8ms 히히 제출 답안들 중에 내가 시간 젤 빨라뚬 ^^ 뿌듯 근데 구현 중에 계속 조건 몇개 놓치느라 생각보다 오래걸림,, 40분이라니,, 집중해서 시간만 좀 단축하자..! 구현 방법 중요도 배열 priority 에서 최대값 max를 먼저 구해준다. priority 의 인덱스 0 부터 탐색 1) 해당 인덱스의 중요도가 max일 경우 - 해당 인덱스의 element를 0으로 변경해준 후 프린트가 되었기 때문에 result += 1 해준다. - 만약 해당 인덱스가 타겟 인덱스와 동일하다면 반복문을 빠져나오기 - 아니면 max 값을 업데이트 해준다. 2) 해당 인덱스의 중요도가 max 보다 낮을 경..

Algorithm/Baekjoon 2023.03.30

[Swift 알고리즘] 백준 11866 요세푸스 문제

○ 큐 / 구현 Silver5 백준 11866 요세푸스 문제 문제 요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) 출력 와 같이 요세푸스 순열을 출력한다. 큐로 분류..

Algorithm/Baekjoon 2023.03.28

[Swift 알고리즘] 백준 2164 카드2

△ 큐 Silver4 백준 2164 카드2 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다.이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 아래에 있는 카드 밑으로 옮긴다.예를 들어 N=4인 경우를 생각해 보자. 카드는 제일 위에서부터 1234 의 순서로 놓여있다. 1을 버리면 234가 남는다. 여기서 2를 제일 아래로 옮기면 342가 된다. 3을 버리면 42가 되고, 4를 밑으로 옮기면 24가 된다. 마지막으로 2를 버리고 나면, 남는 카드는 4가 된다.N이 주어졌을 때, 제일 ..

Algorithm/Baekjoon 2023.03.28

[Swift 알고리즘] 18258 큐2 - 개빡침🤬 (feat. 더블 스택 큐 구현방법)

× 큐 백준 18258 큐2 Swift 에 회의감이 들게 하는 문제다,, 계속 시간초과 뜨는데 아무리 다양한 방식으로 구현해봐도 내 코드는 어디가 문제인지 전혀 모르겠고,, 알고리즘 구현을 잘못해서 발생하는 문제는 아닌거같은데 Swift 입출력이 느려서 그렇다나뭐라나 아무튼 개빡침,, FileIO 사용해서 어케어케 하면 통과시켜주는듯,, 백준에서는 시간초과로 통과를 안시켜주지만 Swift에서 더블스택을 사용하여 큐를 구현했을 때 생기는 의문점이 있어 공유해본다. 보통 시간복잡도가 O(n)인 removeFirst()를 사용하지 않고 dequeue를 효율적으로 구현하는 방식으로 다음 두 가지를 흔히 사용한다. 1. 포인터를 사용한 큐 구현 2. 더블 스택 큐 를 제시한다. 1. 포인터 사용 removeFir..

Algorithm/Baekjoon 2023.03.27

[Swift 알고리즘] 백준 1874 스택 수열

△ 스택 Silver 2 백준 1874 스택 수열 문제 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지, 있다면 어떤 순서로 push와 pop 연산을 수행해야 하는지를 알아낼 수 있다. 이를 계산하는 프로그램을 작성하라. 입력 첫 줄에 n (1 ≤ n ≤ 100,000)이 주어진다. 둘째 줄부터 n개의 줄에는 수열을 이루는 1이상 n이하의 정수가 하나씩 순서대로 주어진다. 물론 같은 정수가 두 번 나오는 일은 없다. 출력 입력된 수열을 만들기 위해 필요한 연산을 한 줄에 한 개씩 출력한다. push연산은 +로, po..

Algorithm/Baekjoon 2023.03.11

[Swift 알고리즘] LeetCode 2457. Minimum Addition to Make Integer Beautiful

× 그리디? Medium You are given two positive integers n and target. An integer is considered beautiful if the sum of its digits is less than or equal to target. Return the minimum non-negative integer x such that n + x is beautiful. The input will be generated such that it is always possible to make n beautiful. Constraints: - 1 Int { var array = String(n).map({ Int(String($0))! }) var sum = array.r..

Algorithm/LeetCode 2023.03.10
728x90
반응형