🔴 문제 🔵 풀이 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. 코드 개선..
Swift
1. 조건문 (Conditions) if 를 이용해서 조건에 따라 다른 프로그램이 실행 될수록 할수 있음 if 조건1 { 실행할 것 } else if 조건2 { 실행할 것 } else { 실행할 것 } 2. 조건 합치기 (Combining Conditions) 조건1과 조건2를 모두 충족할 때 -> if 조건1 && 조건2 조건1 또는 조건2를 충족할 때 -> if 조건1 || 조건2 3. 삼항 연산자 (Ternary Operator) 삼항 연산자를 이용해서 조건을 확인하고 true / false에 따른 값 할당이 가능하다. let 변수명 = 조건 ? 참일 때 값 : 거짓일 때 값 // 예시 let text = age3 == age4 ? "same" : "not same" >> 이전 문서: https:/..
1. Arithmetic Operator (산술 연산자) 숫자 타입에 대해서는 + , - , * , / 연산 가능 정수형 숫자 타입에 대해서는 나머지 (%) 연산도 가능 let a = 10 let b = 3 let x = a + b // 13 let y = a * b // 30 let z = a / b // 3 let w = a % b // 1 2. Operator Overloading (연산자 오버로딩) ✨ 연산자는 타입에 따라 연산을 가질 수 있다. ex) '+'의 경우, 숫자 타입 뿐만 아니라 String, array에도 사용 가능하다. let str1 = "aaa" let str2 = "bbb" let str = str1 + str2 // "aaabbb" let names1 = ["April", ..
🔴 문제 🔵 풀이 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..
🔵 옵셔널 제거 방법 3가지 💁🏻♀️ 1. Forced Unwrapping (if you're sure it's safe) : forced unwrapping('!')을 사용할 땐 주의해야 한다. 옵셔널이 'nil'일 경우, 시스템이 충돌하기 때문이다. 변환이 항상 성공하는 상황에서만 사용할 것! let char: Character = "5" // wholeNumberValue 뒤에 ! 붙이는 경우 let integerValue = char.wholeNumberValue! print(integerValue) // 5 // 변수 뒤에 ! 붙이는 경우 let integerValue = char.wholeNumberValue print(integerValue!) // 5 방법 : Optional로 선언된 변..
🔴 문제 임의의 양의 정수 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..