본문 바로가기

분류 전체보기

(268)
[백준/Swift] 1261: 알고스팟 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미 www.acmicpc.net 간단한 문제 요약 시작 (1,1) 탈출 칸 (N,M). 시작 칸에서부터 미로를 탈출해야 한다. 벽이 있는 경우 벽을 부수면서 탈출해야 하는데 벽을 최소한으로 부숴서 탈출 지점까지 도착해야 한다. 문제 풀이, 느낀 점 문제 선정은 다익스트라 파트에서 골랐다. 당연히 힙을 구현했고 힙을 이용해서 풀었다. 한 가지 낯설었던 것은 기존에 다익스트라 문제는 지점을 지날 때 가중치 값이 주어지는데 이 문제는 가중치가 없었다. 그래서 이전에 방문했던 칸..
[Swift] No3. Hi subject! PassthroughSubject vs CurrentValueSubject 개념 완벽 뿌수기 | Combine Swift Combine. Subject PassthroughSubject, CurrentValueSubject에 대한 개념을 정리하려고 합니다 : ] What is Publiser? Subject를 소개하기 전에 잠깐,, 이전에 소개했던 publisher 예제입니다. let requestBeverage = Notification.Name("RequestBeverage") let publisher1 = [1,2,3,4,5,6].publisher let publisher2 = Just([1,2,3,4,5,6]) let publisher3 = Future { promise in promise(.success([1,2,3,4,5,6])) } let publisher4 = NotificationCenter.de..
[백준/Swift] 4482 : 녹색 옷 입은 애가 젤다지? 문제 (링크) 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 간단한 문제 요약 '도둑루피' 라는 검정색 루피를 획득하면 소지한 루피가 감소한다. N*N의 동굴에는 도둑 루피로 가득하다. 젤다는 [0][0]위치에 있고 출구는 맨 아래칸 [N-1][N-1]로 이동해야한다. 동굴의 각 칸은 도둑 루피가 있다. 잃는 금액을 최소로 해서 동굴의 출구로 이동해야 한다. 한번에 한 칸 이동할 수 있다. 고려해야 할 사항 도둑 루피 크기가 K인 특정 칸을 지나면 K루피를 잃는 다는 뜻 시작점 [0][0]..
[Swift/Algorithm] 우선순위 큐 개념 정리, 최소 힙 개념 with 라이노님 Heap 코드 리뷰 라이노님 힙 상세 리뷰(안 까먹기 위해..) + 최소 힙 개념 정리 라이노님 힙 구조 struct Heap where T: Comparable { private var heap = [T]() let compare: (T,T) -> Bool var isEmpty: Bool { return heap.isEmpty } init(compare: @escaping (T,T) -> Bool) { self.compare = compare } init() { self.init(compare: T? { guard !heap.isEmpty else { return nil } guard heap.count != 1 else { return heap.removeFirst() } let res = heap.first! heap..
[백준/Swift] 1238 : 파티/ 우선순위 큐 개념 정리, 최소 힙 개념 with 라이노님 Heap 정리 문제 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 간단한 문제 요약 각 마을에는 한명의 학생이 살고 있습니다. n명의 학생은 x번 마을에 모여 파티를 합니다. 이때 m개의 도로는 단 방향입니다. i 비용을 들여 도로를 지나갑니다. 고려해야 할 사항 N, M, X 입력은 1 부터입니다.. (X제약을 못봐서 계속 X위치를 다르게 구했다는..ㅠㅠ) 문제 풀이, 했갈렸던 점 x번을 제외한 마을 학생들은 각자가 갈 수있는 모든 마을에 대해 최단 경로를 구한 후 x일때의 최단 경로를 저..
[백준/Swift] 6087 : 레이저 통신 보호되어 있는 글입니다.
[Swift] No2. Publihser, Subscriber. 개념 파해치기 in Combine 안녕하세요. Publihser와 Subscriber을 공부하면서 배운 개념들을 소개합니다. What is Pubilsher? 이전 파트에서 소개 했지만 다시 간력하게 설명하겠습니다. "시간의 흐름"에 따라 Publisher's Output type의 값을 하나 또는 여러 Subscriber에게 publish(전송) 전송할 수 있습니다. 주의해야 할 것은 Publisher's Output, Failure generic type 과 Subscriber's Input, Failure generic type이 일치해야만 Publisher는 Subscriber에게 값을 전달할 수 있습니다. 지금 자판기가 있습니다. 자판기에는 많은 음료수가 있습니다. 많은 사람이 자판기를 이용하기 위해 줄을 서 있습니다. 음료수를..
[백준/Swift] 2933: 미네랄 백준 2933 미네랄 2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net BFS 문제 입니다. 간단한 문제 요약 두 사람이 동굴(R,C크기) 양쪽에 서서 번갈아가면서 막대기를 던집니다. 맨 처음 좌 -> 우 그 다음 우-> 좌 의 반복으로 던집니다. 미네랄 "x" 에 맞을 경우 미네랄이 파괴가 되는데 분리된 클러스터(땅과 닿지 않거나, 땅과 연결된 클러스터로 부터 분리된 경우)인 경우 중력에 의해 바닥으로 떨어집니다. 떨어지는 동안 클러스터 모양은 변하지 않습니다. 고려해야 할 사항 막대기는 특정 높이를 유지하며 날라간다. 이..