🔴 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 s의 길이는 1 이상 5 이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. 🔵 풀이 문자열을 숫자로 변환하는 데에는 1. Int()로 감싸거나, 2. wholeNumberValue 프로퍼티를 사용하는 등의 방법이 있다. 그러나 whole number는 0과 자연수만 포함하기 때문에, 이 문제에는 사용할 수 없다. (물론 s의 부호를 따로 떼어내는 작업을 거칠 수도 있지만 귀찮으니까.) 코드는 다음과 같다. func solution(_ s:String) -> Int { if let num: Int = Int(s) { re..
🔴 문제 자연수 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 }..
앞서 [Swift] 고차함수 - map, filter, reduce 에서 map에 대해 정리했지만, 오늘은 flatMap, compactMap을 함께 비교하며 다시 정리해보려 한다. ( 참고 : tdcian님 블로그 ) [Swift] 고차함수 - map, filter, reduce 주제: Swift 표준 라이브러리에서 제공하는 고차함수 map, filter, reduce (참고: yagom's blog, 개발하는 훈이님 블로그 ) 📌 고차함수란? 고차함수(Higher-order function)는 다른 함수를 *전달인자로 받거나, 함 yurim-dev.tistory.com 1️⃣ map(_:) 📌 개요 기능 : 클로저를 시퀀스의 각 요소에 적용시켜 새로운 array를 생성한다. * mapping(맵핑):..
🔴 문제 (문제 링크: 프로그래머스) 함수 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 이 되면서 런타임 오류가 발생하기..