본문 바로가기

# 02/Swift - CTP

[Swift] 백준! 2018번 - 수들의 합 5 https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net import Foundation let n = Int(readLine()!)! var c = 1 var a = 1 while true { var sum = a*(a+1)/2 if n-sum
[Swift] 백준! 2635번 - 수 이어가기 https://www.acmicpc.net/problem/2635 2635번: 수 이어가기 첫 번째 수가 주어진다. 이 수는 30,000 보다 같거나 작은 양의 정수이다. www.acmicpc.net import Foundation let n = Int(readLine()!)! var maxC = 0 var str = "" for i in 1...n { var c = 2 var s = "\(n) \(i)" var a = n var b = i while a-b >= 0 { c += 1 let d = a-b a = b b = d s += " \(d)" } if maxC < c { maxC = c str = s } } print(maxC) print(str)
[Swift] 백준! 5635번 - 생일 https://www.acmicpc.net/problem/5635 5635번: 생일 어떤 반에 있는 학생들의 생일이 주어졌을 때, 가장 나이가 적은 사람과 가장 많은 사람을 구하는 프로그램을 작성하시오. www.acmicpc.net import Foundation let n = Int(readLine()!)! var list:[[String]] = [] for _ in 1...n { let l = readLine()!.split(separator: " ").map{ String($0) } list.append(l) } let sorted = list.sorted { let aY = Int($0[3])! let bY = Int($1[3])! if aY == bY { let aM = Int($0[2])! l..
[Swift] 백준! 2161번 - 카드1 https://www.acmicpc.net/problem/2161 2161번: 카드1 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 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(..
[Swift] 백준! 2822번 - 점수 계산 https://www.acmicpc.net/problem/2822 2822번: 점수 계산 8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문 www.acmicpc.net import Foundation var dic:[Int:Int] = [:] for i in 1...8 { let n = Int(readLine()!)! dic[n] = i } var list:[Int] = [] let sorted = dic.keys.sorted(by: >) var sum = 0 for i in 0...4 { sum += sorted[i] list.append(dic[sor..
[Swift] 백준! 2167번 - 2차원 배열의 합 https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net import Foundation let l = readLine()!.split(separator: " ").map{ Int(String($0))! } let N = l[0] var b:[[Int]] = [] for _ in 1...N { b.append(readLine()!.split(separator: " ").map{ Int(String($0))! }) } let ..
[Swift] 백준! 17478번 - 재귀함수가 뭔가요? https://www.acmicpc.net/problem/17478 17478번: 재귀함수가 뭔가요? 평소에 질문을 잘 받아주기로 유명한 중앙대학교의 JH 교수님은 학생들로부터 재귀함수가 무엇인지에 대하여 많은 질문을 받아왔다. 매번 질문을 잘 받아주셨던 JH 교수님이지만 그는 중앙대 www.acmicpc.net import Foundation let n = Int(readLine()!)! print("어느 한 컴퓨터공학과 학생이 유명한 교수님을 찾아가 물었다.") jp(0) func jp(_ i:Int) { var bar = i > 0 ? String(repeating: "____", count: i) : "" if i == n { print(""" \(bar)"재귀함수가 뭔가요?" \(bar)"재귀함..
[Swift] 백준! 1789번 - 수들의 합 https://www.acmicpc.net/problem/1789 1789번: 수들의 합 첫째 줄에 자연수 S(1 ≤ S ≤ 4,294,967,295)가 주어진다. www.acmicpc.net import Foundation let S = Int(readLine()!)! var i = 1 var sum = 0 while true { if S == sum { i -= 1 break } else if S < sum { i -= 2 break } sum += i i += 1 } print(i)