-
알고리즘) 백준 2206번 벽 부수고 이동하기 Swift🧑💻/Algorithm 2021. 5. 18. 00:45
https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 예제 입력 출력 6 4 0100 1110 1000 0000 0111 0000 15 4 4 0111 1111 1111 1110 -1 5 10 0000011000 1101011010 0000000010 1111111110 1111000000 14 문제 접근 우선 단순하게 생각을 해 보았습니다. 1. 벽을 한 개 부숴도 된다면 한 개 씩 부숴서 거리가 제일 짧게 나오는 결과를 ..
-
알고리즘) 백준 7569번 토마토 Swift🧑💻/Algorithm 2021. 5. 13. 19:02
https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 예제 입력 출력 5 3 1 0 -1 0 0 0 -1 -1 0 1 1 0 0 0 1 1 -1 5 3 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 4 4 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 1 1 1 -1 0 문제 접근 이 문제는 3차원 배열이기 때문에 2차원 배..
-
알고리즘) 백준 7562번 나이트의 이동 Swift🧑💻/Algorithm 2021. 5. 11. 19:07
www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 예제 입력 출력 3 8 0 0 7 0 100 0 0 30 50 10 1 1 1 1 5 28 0 문제 접근 예제를 살펴봅시다. 길이가 8이고 (0, 0)에서 (7, 0)으로 가는 방법은 이렇습니다. 하지만 다르게 가는 방법도 물론 존재합니다. (0, 0) -> (2, 1) -> (4, 2) -> (6, 1) -> (8, 2) -> (7, 0) 다시 문제로 돌아와서, 나이트가 이동할 수 있는 지점은 기준점으로부터 1..
-
알고리즘) 백준 13305번 주유소 Swift🧑💻/Algorithm 2021. 5. 10. 19:28
www.acmicpc.net/problem/13305 13305번: 주유소 표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 도시의 개수를 나타내는 정수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 인접한 두 도시를 연결하는 도로의 길이가 제일 왼쪽 도로부터 N-1 www.acmicpc.net 예제 입력 출력 4 2 3 1 5 2 4 1 18 4 3 3 4 1 1 1 1 10 5 3 2 1 4 5 8 9 4 1 46 문제 접근 문제의 포인트는 가장 저렴한 주유소에서 충전하여 최대한 많은 거리를 가는 것입니다. 문제 속 예제를 로직화 해보았습니다. 0번째 : 최소 비용이 5원이므로 5원 * 2km 를 가야 합니다. 1번째 : 최소 비용이 5원에서 2원으로 변경됩니다. 2원 * 3km 를 ..
-
디자인패턴 - MVC, MVP, MVVM🧑💻/Swift 2021. 5. 10. 15:39
디자인 패턴은 3가지로 구분됩니다. 1. 구조 디자인 패턴 : 객체가 어떻게 결합되고 구성되는지 설명합니다. MVC, MVVM 등이 있습니다. 2. 행위 디자인 패턴 : 객체의 통신 방법을 설명합니다. Delegation, Strategy, Observer 등이 있습니다. 3. 생성 디자인 패턴 : 객체를 생성하거나 인스턴스화 하는 방법을 설명합니다. Builder, Singleton, Prototype 등이 있습니다. 이 중 구조적 디자인 패턴(Structural Design Pattern)에 대해 알아보겠습니다. MVC 패턴 : Model-View-Controller Model : 데이터를 구성하는 틀. struct, class 등 View : 화면에 표시되는 요소나 제어. UIView의 subcla..