https://www.acmicpc.net/problem/4948 4948번: 베르트랑 공준 베르트랑 공준은 임의의 자연수 n에 대하여, n보다 크고, 2n보다 작거나 같은 소수는 적어도 하나 존재한다는 내용을 담고 있다. 이 명제는 조제프 베르트랑이 1845년에 추측했고, 파프누티 체비쇼 www.acmicpc.net 바로 전에 풀었던 소수찾기 문제에 약간 손을 보면 된다. 이 문제 역시 에라토스테네스의 체를 사용하여 시간을 단축시키 풀 수 있다. import Foundation while true{ var sum = 0 var input = Int(readLine()!)! var n = 2*input var numList = [Int]() var boolList = Array(repeating: fal..
https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 에라토스테네스의 체를 사용하여 시간내에 풀 수 있다. 2부터 모든 소수를 구하는 이유는 100부터 시작할 경우 100은 지워지지 않기 때문에 2부터 범위까지의 모든 소수를 구한 수 시작수이상의 수 부터 출력을 하면 된다. import Foundation let input = readLine()!.split(separator: " ").map { Int($0)! } let m = input[0] let n = input[1] va..
https://www.acmicpc.net/problem/11653 11653번: 소인수분해 첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. www.acmicpc.net 인수분해만 하면 되는 간단한 문제. 2로 계속나누다가 2로 나누지 못할경우 3, 3으로 나누지 못할경우 4.... 반복해서 나누는 수가 나눠지는 수보다 커지면 반복을 종료한다. import Foundation var input = Int(readLine()!)! var num = 2 func calc(input: Int){ var inputNum = input while inputNum%num < num { if inputNum == 1 { break } if inputNum%num == 0 { inputNum = ..
https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 소수일시 배열에 넣어서 저장한다. 바로 전에 풀었던 문제와 딱히 다를게 없는 문제. import Foundation let m = Int(readLine()!)! let n = Int(readLine()!)! var list:[Int] = [] var count = 0 func findDemical(input: Int)->Int{ if input == 1{ return 0 } for item in 2..
https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 함수로 푸니 좀더 수월했다. 반복문을 끝까지 돌아서 나왔을 경우(소수)에는 1을 리턴, 중간에 0으로 나뉘면 0을 리턴 하게해 수가 저장된 배열에 소수와 아닌수를 구별 해 reduce로 합쳐서 출력했다. import Foundation var num = readLine() var line = readLine()!.split(separator: " ").map({Int($0)!}) var count = 0 func calc(input: Int) -> Int { if ..
아스키 코드를 사용해 풀면 간단한 문제. swift를 공부한지 일주일 가량 되었지만, 클로저 사용이 아직까지 익숙하지가 않다. 클로저가 swift에서 상당히 중요하다고 하는데.. import Foundation var word = readLine()! var count = 0 var list = Array(repeating: -1, count: 26) var printString = "" word.forEach(){ if(!(list[Int($0.asciiValue!)-97] != -1)) { list[Int($0.asciiValue!)-97] = count } count += 1 } for item in list{ printString += String(item) printString += " " } ..