728x90 알고리즘48 [Swift 알고리즘] Codility lesson3 - FrogJmp 안녕하세요 코코종입니당. lesson3은Time Complexity 인데요 마침 이전 문제에서 시간복잡도를 고려하지 않아서 틀렸어서 ㅎ.. (사실 이걸 노린 순서인가..?) 한번더 생각하게 되더라구요! 현 위치 X, 목표지점 Y, 한번에 뛸 수 있는 거리 D를 주고 Y지점에 도달하는(지나가도 됨) 시간을 구하는 문제였습니다. 단순히 X에서 무한히 D만큼을 더해주고 Y와 비교해도 되지만 아마 그렇게 하면 틀리겠죠?(그러라고 만든문제) 그래서 이동해야 하는 거리(Y - X) / 한번에 뛸 수 있는 거리(D) 를 해준 후 나머지가 있다면 한번 더 뛰게 했습니다. import Foundation import Glibc // you can write to stdout for debugging purposes, e.. 2022. 10. 30. [Swift 알고리즘] Codility lesson2 - OddOccurrencesInArray 안녕하세요 코코종입니다! 오늘은 OddOccurrencesInArray라는 문제를 풀어봤는데요! 홀수개의 원소를 가지는 Array에서 단 한가지 요소만 짝을 이루지 못하는데 그 원소를 찾아내는 문제였습니다.(솔로 찾기..!) public func solution(_ A : inout [Int]) -> Int { var stack: [Int] = [] let arr: [Int] = A arr.forEach { a in if !stack.contains(a) { stack.append(a) } else { stack = stack.filter{ $0 != a } } } return stack.first! } 처음에는 단순히 Stack에 해당 원소의 유무에 따라 append와 remove를 해준건데요 네,.... 2022. 10. 30. [Swift 알고리즘] Codility lesson2 - CyclicRotation 알로하~~ 안녕하세요 코코종입니닷 요번주에는 왜이리 갓생을 못산것인지.. 허헣... 일이 많았네요 그래도 힘내서 한문제 풀어봤습니다. 해당 문제는 Codility lesson2 - CyclicRotation에서 확인가능합니다 간단하게 설명을 하자면 배열과 몇번이나 rotate 시킬지인 K가 주어지고, 해당 횟수만큼 돌렸을 때의 결과를 보여주는 것입니다. rotate는 [1, 2, 3, 4] 라고 할 때 [2, 3, 4, 1]로 변환하는 것을 뜻합니다. (처음에 문제를 제대로 안읽어서 반대로 생각했던 나... 눈감아) 어렵지 않은 문제라서 바로 답안을 공개하겠습니다. public func solution(_ A : inout [Int], _ K : Int) -> [Int] { // write your co.. 2022. 10. 23. [Swift 알고리즘] Codility lesson1 - BinaryGap 간만에 찾아온 코코종입니닷... 갓생을 살기로 마음먹어서... iOS, 코딩테스트, CS 공부를 하기로 마음먹은지 3일차입니당 코딜리티의 lesson을 다 swift로 풀어보려고 해서 그 첫삽을 떴답니다 ㅎㅎ.. 해당 문제는 lesson1 - BinaryGap 에서 확인이 가능합니다. 간단하게 설명하면 주어진 Int N을 이진수로 바꾸고 이 중 1과 1사이에 있는 연속된 0의 최대 갯수를 구하는 문제입니다. 저는 Int N -> String 하는 메서드인 intToBinary()를 구현했습니다. 이후 해당 String을 forEach로 돌면서 0인지 1인지에 따라 tmp에 현재 연속된 0의 갯수를 저장했습니다. 1을 만나게되면 answer과 tmp값중 큰 값으로 answer를 갱신해주고 tmp를 0으로 .. 2022. 10. 12. [Swift 알고리즘] 백준 2206 - 벽 부수고 이동하기 안녕하세요 코코종입니다~ 이번에는 좀 어려웠던..ㅜㅜㅜ 문제를 들고왔어요. 순서로는 나이트 이동하기 보다 먼저 풀어서 나중에 나이트 문제를 풀 때 좀 수월했답니다! https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net // // main.swift // Algorithm // // Created by kokojong on 2022/03/28. // //6 4 //0100 //1110 //1000 //0000 //0111 //.. 2022. 3. 30. [Swift 알고리즘] 백준 7562 - 나이트의 이동 안녕하세요 코코종입니다! 오늘은 BFS문제인 나이트의 이동을 풀어보겠습니다. https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net // // main.swift // Algorithm // // Created by kokojong on 2022/03/29. // // 7562 나이트의 이동 import Foundation let n = Int(readLine()!)! for _ in (0.. index { let q = queue[index] let .. 2022. 3. 30. 이전 1 ··· 4 5 6 7 8 다음 728x90