본문 바로가기

swift3

[Algorithm/BOJ] 1074 - Z (분할정복, 재귀) Swift 문제풀이: 2^N X 2^N을 2 X 2 까지 분할해서 타겟 좌표를 찾아야 한다. 하지만 N의 범위는 15까지 이기 때문에 일일히 찾으면 2^15 * 2^15 시간 초과가 발생한다. 그러므로 타겟 좌표에 해당하는 행렬일 때만 탐색하고 아닐 때는 방문한 걸로 치고 넘어가서 시간을 줄여야 한다. 코드: import Foundation func solution(_ powN: Int, _ nr: Int, _ nc: Int) { if nr == r && nc == c { print(result) return } // 원하는 좌표가 포함되는 행렬이 아닐 때 방문한 걸로 치고 넘어가기 (시간 줄이기) if !(nr 1이 라서 www.acmicpc.net 2021. 4. 8.
[Algorithm/BOJ] 2589 - 보물섬 (BFS) Swift 문제 풀이: 문제에서 시작점이 주어지지 않기 때문에 직접 기준점을 잡아주어야 한다. 육지(L)를 기준으로 시작점을 잡는다. 그 좌표에서 지도를 벗어나지 않고 상화좌우로 이동할 좌표가 육지라는 선에서 이동거리를 1씩 늘려서 갈 수 있는 모든 좌표에 대한 거리를 나타내는 배열에 저장한다. 그리고 시작점에서 갈 수 있는 최대 거리(거리를 나타내는 배열의 최대 값)랑 이 문제의 답이 되는 변수와 비교하여 큰 것을 변수에 저장한다. 모든 육지(L)의 좌표에 대해서 반복한다. 코드: typealias Coord = (r: Int, c: Int) let input = readLine()!.split(separator: " ").map { Int(String($0))! } let n = input[0] let m = .. 2021. 3. 14.
[iOS] FSCalendar Custom Header Swift FSCalendar에서 스와이프를 통해 달을 변경할 수 있지만, 따로 헤더에 버튼 부분이 없기 때문에 방법을 공유하고자 기록하겠습니다. 우선 아래와 같이 스토리보드에서 calendarView 위에 버튼, 라벨, 버튼으로 되어 있는 스택뷰를 추가한다. 그리고 해당 뷰컨트롤러에 아래 코드와 같이 연결해준다. @IBOutlet weak var calendarView: FSCalendar! @IBOutlet weak var headerLabel: UILabel! @IBAction func prevBtnTapped(_ sender: UIButton) { scrollCurrentPage(isPrev: true) } @IBAction func nextBtnTapped(_ sender: UIButton) { scrol.. 2021. 3. 10.