Swift/Code Kata (알고리즘)

🔴 문제 🔵 풀이 1 주어진 수를 담은 변수 'temp'가 1이 될 때까지 반복되는 while문을 만들면 될 것 같다. -> temp != 1 인 동안 반복하는 while문 작성 몇 번 돌았는지를 체크하고 반환하는 'count' 변수도 있어야 하겠다. 문제를 보면 500번째 반복까지는 괜찮아보인다. 'count'가 501인 순간 반복문을 break하고 -1을 return하게 하면 된다. func solution(_ num:Int) -> Int { guard num != 1 else { return 0 } var temp = num var count = 0 while temp != 1 { count += 1 if count > 500 { break } if temp % 2 == 0 { // collatz ..
🔴 문제 🔵 풀이 1 - for...in func solution(_ a: Int, _ b: Int) -> Int { var sum = 0 let start = min(a, b) let fin = max(a, b) for i in start...fin { sum += i } return sum } * for i in start...fin 에서 star는 무조건 fin보다 작거나 같아야 한다. 🔵 풀이 2 - Array함수 사용 func solution(_ a:Int, _ b:Int) -> Int64 { return Int64(Array(a > b ? b...a : a...b).reduce(0, +)) } Array 함수에 대한 문서는 못찾았지만, Array(a...b)는 a부터 b까지의 정수값들이 포함된..
🔴 문제 🔵 풀이 1. 초기 풀이 - reduce, ternary operator func solution(_ x:Int) -> Bool { let sum = String(x).reduce(0) {$0 + Int(String($1))!} return x % sum == 0 ? true : false } 코드리뷰 > - 잘한 점 : 이전에 배웠던 reduce를 적극 사용한 것은 잘했다. - 아쉬운 점 : 삼항연산자를 쓰지 않아도 조건식을 return하면 true, false 값이 출력되었을 것이다. func solution(_ x:Int) -> Bool { let sum = String(x).reduce(0) {$0 + Int(String($1))!} return x % sum == 0 } 2. 코드 개선..
🔴 문제 🔵 풀이 func solution(_ n:Int64) -> Int64 { var arr: [Character] = [] // 정수를 한글자씩 담을 리스트 생성 var str = String(n) // 스트링으로 변환한 정수를 str에 담기 var strNew: String = "" // 정렬된 리스트에서 한글자씩 붙일 스트링 변수 for i in str { arr.append(i) // str을 한 글자씩 떼어서 arr에 담는 과정 } arr.sort(by: >) // arr을 내림차순으로 정렬 for i in arr { strNew += String(i) // 정렬된 리스트 원소 하나씩 떼어서 strNew에 붙이는 과정 } var intNew: Int64 = Int64(strNew) ?? -1..
🔴 문제 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 제한 사항: n은 1이상, 50000000000000 이하인 양의 정수입니다. 🔵 풀이 이번 문제는 'sqrt(_:) 함수만 알고 있으면 풀기 쉽다. 단, sqrt(_:)를 사용하려면 Foundation 프레임워크를 import해야한다. import Foundation func solution(_ n: Int64) -> Int64 { let x: Int64 = Int64(round(sqrt(Double(n)))) if x * x == n { return (x + 1) * (x..
🔴 문제 문자열 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..
yurim-dev
'Swift/Code Kata (알고리즘)' 카테고리의 글 목록 (7 Page)
let textNodes = document.querySelectorAll("div.tt_article_useless_p_margin.contents_style > *:not(figure):not(pre)"); textNodes.forEach(function(a) { a.innerHTML = a.innerHTML.replace(/`(.*?)`/g, '$1'); });