https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 문제 풀이: bfs를 이용하여 방문한 위치를 체크. 지도를 초기화 할때, 뱀이 있다면 이동해야 하는 위치를 값으로 넣어주고 그 외의 칸은 0으로 처리. 이동하는 위치가 0이 아닌 값이라면 해당 값의 위치로 이동 및 방문 처리하는 방식으로 문제를 풀었다. import Foundation var map: [Int] = Array(repeating: 0, ..
Sesac의 마지막 프로젝트인 SLP(Service Level Project)가 드디어 끝났다. 마지막 프로젝트이기도 하고 내가 여태까지 해본 프로젝트 중에서 가장 규목가 큰 프로젝트이기도 하고, 오픈 API가 아닌 실제 서버를 연동해서 한 프로젝트이기에 도전을 해보고 싶었고, 그동안 UIKit으로만 프로젝트를 해봤었는데 이번엔 SwiftUI로 해보았다. 그리고 Combine, Swift Concurrency 역시 사용해 봤는데, 처음에 개념을 학습할 때 시간이 많이 걸리긴 했지만 클로저를 사용할 때 보다 굉장히 코드가 깔끔하게 짜여서 좋았다. 사실 과정은 1월 17일에 끝났지만, SLP프로젝트의 경우 수료 이후에도 진행해야 했기에 이제서야 후기글을 작성하게 되었다. SLP를 초반에 진행할 때 2월 중반..
https://www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 상어의 현재 방향에 따라 방향의 우선순의가 다르고 격자안에 상어의 냄새에 따라 우선순의가 정해지므로, 이를 구조체로 정의해서 품. 각 상어의 우선순위 방향은 Dictionary로 정의해서 저장 import Foundation struct shark { enum Direction: Int { case on = 1 case under case left ca..
https://www.acmicpc.net/problem/17142 17142번: 연구소 3 인체에 치명적인 바이러스를 연구하던 연구소에 승원이가 침입했고, 바이러스를 유출하려고 한다. 바이러스는 활성 상태와 비활성 상태가 있다. 가장 처음에 모든 바이러스는 비활성 상태이고, www.acmicpc.net 틀이 되는 풀이는 금방 알았지만.. 예외처리 할것들이 많았던 문제. 조합 + BFS + 부르트 포스를 이용하여 풀었다. 예외처리 할 부분은 비활성화된 바이러스의 처리 부분. 비활성화된 바이러스도 바이러스이므로 해당 부분을 다른 바이러스가 전이하지 않아도 바이러스가 존재한것으로 규정한다. 이에 따른 예외처리할것들이 꽤 있어서 고생했다. import Foundation let input = readLine(..
https://www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 단순 구현문제. 기어가 돌아가는 방식이 서로 다른 극일때 기어가 돌아 갈 수 있다. 즉 기어다 돌아가기 전에 다른 극이어야지만 돌아가지, 이전에 같은 극이었다가 기어가 돌아 간 후 다른 극이 된 상태에서는 돌아가지 않는다. 나같은 경우는 큐를 이용하여 rotate할 기어의 방향과 번호를 저장 후 큐에서 빼낸 후 해당 기어의 번호 +-1씩 해준 후 해당 번호의 기어가 돌아 갈 수 있다면 큐에서 ..
Alamofire는 URLSession을 쉽게 사용하게 해 주고 statusCode에 따른 응답 유효성 검사, 응답값 디코딩 등등 여러 가지 편의 기능들을 여럿 지원해 준다. 대표적인 기능으로는 요청을 보낼때마다 공통적인 부분 혹은 로직을 분리해서 재사용할 수 있게 해주는 Interceptor, 요청을 보낼 때 어떻게 작동하고 있는지 Console의 출력을 통해 보여주는 EventMonitor 기능등이 있다. 이러한 기능들은 쉽게 사용할 수 있도록 기본적인 구현이 제공된다. Alamofire에서 기본적으로 구현된것만으로 많은 오픈 API를 대응할 수 있다. 구글링을 통해 Alamofire를 사용하는 코드를 보면 대부분이 이 코드 혹은 이 코드에서 크게 벗어나지 않을 것이다. AF.request("http..