알고리즘 공부/프로그래머스
-
[Swift] 알고리즘 공부 - 나머지가 1이 되는 수 찾기알고리즘 공부/프로그래머스 2023. 3. 27. 16:03
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 설명 1. 1부터 n/2까지 (n/2를 넘어가면 나머지가 1이 되는 수는 n-1밖에 없다) 한번씩 n을 나눠본다. 2. 만약 나머지가 1이 되는 수가 있다면 그수를 return 하고 없다면 n-1를 return import Foundation func solution(_ n:Int) -> Int { for i in 1...n/2 { if n % i == 1 { return i } } return n-1 }
-
[Swift] 알고리즘 공부 - 정수 제곱근 판별알고리즘 공부/프로그래머스 2023. 3. 26. 21:20
문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한사항 n은 1이상, 50000000000000 이하인 양의 정수입니다. 입출력 예 n return 121 144 3 -1 설명 1. 1부터 n까지의 수를 각각 제곱해본다 2. 제곱한 값(i*i)이 n보다 크면 제곱근이 없는것이기 때문에 return -1 3. 제곱한 값(i*i)이 n이라면 i+1을 제곱해주고 return func solution(_ n:Int64) -> Int64 { var i = 1 if n == 1 { return 4 } while i < n { if..
-
[Swift] 알고리즘 공부 - x만큼 간격이 있는 n개의 숫자알고리즘 공부/프로그래머스 2023. 3. 26. 21:08
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] 설명 1. 1부터 n번동안 x의 값에 i를 곱한값을 배열에 넣어준다. func solution(_ x:Int, _ n:Int) -> [Int64] { var answer: [Int64] = [] for i in 1...n { answer.append(Int64(x*..
-
[Swift] 알고리즘 공부 - 평균 구하기알고리즘 공부/프로그래머스 2023. 3. 26. 20:59
문제 설명 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입출력 예 arr return [1,2,3,4] 2.5 [5,5] 5 설명 1. arr의 모든수를 더한다 2. 모든수를 더한값에서 배열에 수만큼 나눠준다 func solution(_ arr:[Int]) -> Double { var sum: Int = 0 for i in arr { sum += i } return Double(sum) / Double(arr.count) } Double은 계산하려는 값이 모두 Double이어야지 연산이 가능하기하다
-
[Swift] 알고리즘 공부 - 약수의 합알고리즘 공부/프로그래머스 2023. 3. 26. 20:38
문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 설명 1. 1부터 n까지 나눠서 나머지가 0이면 저장시킨다. 2. 0은 예외처리 해준다. func solution(_ n:Int) -> Int { var answer: Int = 0 if n == 0 { return 0 } else { for i in 1...n { if n % i == 0 { answer += i } } } return answer } 0을 예외처리 해주는것만 생각하면 쉬운문제다
-
[Swift] 알고리즘 공부 - 자릿수 구하기알고리즘 공부/프로그래머스 2023. 3. 26. 20:29
문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 N의 범위 : 100,000,000 이하의 자연수 입출력 예 N answer 123 6 987 24 설명 1. N에 주어지는 수를 String으로 변환한다 2. for문을 만들어 각 자릿수를 더한다 import Foundation func solution(_ n:Int) -> Int { var answer: Int = 0 for i in String(n) { answer += Int(String(i))! } return answer } Int(String(i))! 에서 !가 붙는 이유는 strin..