본문 바로가기

# 02/Swift - CTP

[Swift] 백준! 11047번 - 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net import Foundation var list = readLine()!.split(separator: " ").map{ Int(String($0))! } let n = list[0] var k = list[1] var cl:[Int] = [] for _ in 1...n { let c = Int(readLine()!)! cl.appe..
[Swift] 백준! 2667번 - 단지번호붙이기 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net import Foundation public struct Queue { fileprivate var array = [T]() public var isEmpty: Bool { return array.isEmpty } public var count: Int { return array.count } public mutating func enquque(_ element: T) { array.append(e..
[Swift] 백준! 2606번 - 바이러스 https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net import Foundation public struct Queue { fileprivate var array = [T]() public var isEmpty: Bool { return array.isEmpty } public var count: Int { return array.count } public mutating func enquque(_ element: T) { array.append(ele..
[Swift] 백준! 2178번 - 미로 탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net import Foundation public struct Queue { fileprivate var array = [T]() public var isEmpty: Bool { return array.isEmpty } public var count: Int { return array.count } public mutating func enquque(_ element: T) { array.append(element) } public ..
[Swift] 백준! 1260번 - DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import Foundation let l = readLine()!.split(separator: " ").map{ Int(String($0))! } let n = l[0] let m = l[1] let v = l[2] var g:[[Int]] = [] for _ in 1...m { let l = readLine()!.split(separator: " ").m..
[Swift] 백준! 2061번 - 좋은 암호 https://www.acmicpc.net/problem/2061 2061번: 좋은 암호 암호화 방식 중에는 소수를 이용하는 것들이 많다. 보통은 매우 큰 두 개의 소수를 선택하고, 두 소수를 곱한 값을 암호화에서의 키로 사용하고는 한다. 이러한 방법이 좋은 이유는 일반적으로 www.acmicpc.net import Foundation func isPrime(num: Int) -> Bool { if(num Int { var ret = 0 for c in s { ret = (ret*10+Int(String(c))!)%p } return ret } let l = readLine()!.split(separator: " ").map{ String($0) } let k = l[0] let m = Int(l[1])..
[Swift] 백준! 2447번 - 별 찍기 - 10 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net import Foundation func getLine(_ i:Int, _ n:Int, _ s:String) -> String { var s = s if (n == 3 && (i%n == 0 || i%n == 1)) || (n > 3 && (n/3 >= i%n || n*2/3 < i%n)) { s = String(repeating: s, count: 3) } else {..
[Swift] 백준! 2981번 - 검문 https://www.acmicpc.net/problem/2981 2981번: 검문 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간 www.acmicpc.net import Foundation func gcd(_ a: Int, _ b: Int) -> Int{ if (b == 0) { return a } return gcd(b, a % b) } let n = Int(readLine()!)! var l:[Int] = [] var minv = 1000000000 for _ in 1...n { let num = Int(readLine()!)! l.append(num) if nu..