🔴 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다 🔵 풀이 1 temp 변수에 Int 타입으로 변환한 n값을 넣고, temp가 0이 될 때까지 1) temp를 10으로 나눈 나머지를 digits 리스트에 넣고 2) temp를 10으로 나누는 코드이다. func solution(_ n:Int64) -> [Int] { guard n > 0 else { return [] } var temp: Int = Int(n) var digits: [Int] = [] while temp > 0 { digits.append(temp % 10) temp /= 10 }..
🔴 문제 (문제 링크: 프로그래머스) 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution 을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다 n은 1000 이하인 자연수입니다. 🔵 풀이 1. 초기 풀이 func solution(_ x:Int, _ n:Int) -> [Int64] { var numbers: [Int64] = [] // guard문으로 제한 조건 확인하기 guard (x >= -10000000 && x [Int64] >> 동료분께서 알려주셨는데, 프로그래머스에서 제한조건으로 들어오는 파라미터는 타입이 정해져..
🔴문제 문제 : 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 : 3 ≤ n ≤ 1,000,000 🔵풀이 1. 초기 풀이 1부터 n까지 차례대로 나눠보다가 나머지가 1이 되는 숫자가 발견되면 바로 return하면 된다. import Foundation func solution(_ n:Int) -> Int { var x = 0 for i in 1...n where x == 0 { if n % i == 1 { x = i } } return x } 2. 풀이 개선 - break 활용 그런데 굳이 for...in 반복문에 where조건문을 쓰지 않아도,..
🔴 문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한사항 : n은 0 이상 3000 이하인 정수입니다. (문제: 링크) 🔵 풀이 1 : for...in 구문 활용 1. 초기 풀이 n의 약수는 1부터 n까지의 자연수 중, n을 나눴을 때 나머지가 0인 자연수라는 개념으로 접근했다. func solution(_ n:Int) -> Int { var sum = 0 for i in 1...n where n % i == 0 { sum += i } return sum } 2. 오류 발생 및 해결 ▶ 오류 그런데 위 코드를 실행하면 16번 테스트에서 막히는데, n=0일 때 for i in 1...0 where n % i == 0 이 되면서 런타임 오류가 발생하기..
🔴 문제 (링크) 문제 설명 : 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 제한사항 : N의 범위 : 100,000,000 이하의 자연수 🔵 풀이 1 > String으로 변환하여 인덱스 활용하기 import Foundation func solution(_ n:Int) -> Int { var strNum = String(n) var answer = 0 for i in strNum { answer += Int(String(i))! } return answer } 🛠️ 오류 발생 및 해결 ① Int(문자) 시 오류 발생 ▶ 문제 위 코드 9번째 줄에서 answer..
🔴 문제 문제 : 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 : arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 🔵 풀이 1 > for...in 사용 func solution(_ arr:[Int]) -> Double { var sum = 0 for i in arr { sum += i } var avg = Double(sum) / Double(arr.count) return avg } 🔵 풀이 2 > reduce 사용 func solution(_ arr:[Int]) -> Double { return Double(arr.reduce(0,+)) / Double(arr.count..