BOJ-2003 수들의 합 2 Swift
문제 N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. 출력 첫째 줄에 경우의 수를 출력한다. 내가 푼 풀이 - 수열은 자연수로 이루어져있고, 연속된 수열의 합이 M이 되는 경우의 수를 구한다. - 재귀호출로 수열의 첫번째부터 마지막번째까지 연속나열된 값들과 더하여 구한다. import Foun..
BOJ-1476 날짜 계산 Swift
문제 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19) 우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다. 예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된다. ..
순열과 조합 Swift
순열 Permutation 서로다른 n개의 원소에서 r개를 중복 없이 순서와 상관있게 선택 혹은 나열하는것이다. ex) [1, 2, 3]의 배열에서 두개의 원소를 뽑는다고 한다면 [1,2], [1,3], [2,1], [2,3], [3,1], [3,2]이 된다. 여기서 [1,2] 와 [2,1]은 들어있는 원소는 같지만, 순서가 다르기때문에 다른 경우의수로 판단한다. import Foundation // 순열 func permutation(_ targetArr: [Int],_ targetNum: Int,_ arr: [Int]) { // 뽑으려는 갯수와 동일한경우 if arr.count == targetNum { print(arr) return } // 순열은 순서가 상관있는 뽑기방식으로, [2,1] != [..