분류 전체보기
Codable & Encodable
Codable 자신을 변환하거나 외부표현(external representation)으로 변환할 수 있는 타입입니다. Codable = Decodable & Encodable Decodable = 자신을 외부표현에서 디코딩 할 수 있는 타입 Encodable = 자신을 외부표현으로 인코딩 할 수 있는 타입 채택할수 있는 인스턴스의 종류 Class Struct Enum Encoding 예시 순서. JSONEncoder선언 위 JSONEncoder의 encode메소드를 사용하여 인스턴스를 Data타입으로 만듬 Data타입을 String타입으로 만듬 struct Person { var name: String var age: Int } // Codable 채택 struct Person: Codable { var..
Swift. 이상한 문자 만들기
문제. 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 풀이. func solution(_ s:String) -> String { var index = 0 let str = s.map { (str: Character) -> String in var result = "" if str != " " { if index % 2 == 0 { resul..
Swift. 약수의 합
문제. 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.제한 사항 n은 0 이상 3000이하인 정수입니다. 풀이. func solution(_ n:Int) -> Int { var result = Set() for i in 1...n/2 { if n % i == 0 { result.insert(i) if i != n/i { result.insert(n/i) } } } return result.reduce(0,+) } 1. 처음에는 그냥 0...n까지 나누어 떨어지는 숫자를 찾으면 된다고 생각했는데 약간의 기능개선이랄까... 그런방법이 있나해서 찾아보다가 2. 나누어 떨어지려면 어차피 말그대로 나누는 것이기 때문에 n/2이상에서는 조건이 발생할수 없기때문에 위의..
Swift. 시저 암호
시저 암호 어떤 문장의 각 알파벳을 일정한 거리만큼 밀어서 다른 알파벳으로 바꾸는 암호화 방식을 시저 암호라고 합니다. 예를 들어 AB는 1만큼 밀면 BC가 되고, 3만큼 밀면 DE가 됩니다. z는 1만큼 밀면 a가 됩니다. 문자열 s와 거리 n을 입력받아 s를 n만큼 민 암호문을 만드는 함수, solution을 완성해 보세요. 제한 조건 공백은 아무리 밀어도 공백입니다. s는 알파벳 소문자, 대문자, 공백으로만 이루어져 있습니다. s의 길이는 8000이하입니다. n은 1 이상, 25이하인 자연수입니다. func solution(_ s:String, _ n:Int) -> String { let lower = Array("abcdefghijklmnopqrstuvwxyz") let upper = Array(..
[TIL] Swift. Closure
Closure 기본 개념 이름이 없는 매서드라고 생각할수있다( = 이름이 없는 함수) 안쪽 Scope는 바깥쪽 Scope를 참조할수 있지만 바깥 Scope는 안쪽을 참조할수 없다. Scope안쪽에서 생성된 함수가 바깥쪽의 변수를 참조 할 수 있고, 만약 안쪽에서 생성된 함수가 Scope 밖에서 사용될 경우 안쪽에서 참조 되었던 변수를 바깥에서도 참조 할 수 있다 아주 정확히는 함수는 Closure의 한가지 타입 Closure의 3가지 타입 Global 함수 Nested 함수 closure expressions 함수는 func가 필요하지만 클로저는 func키워드가 필요없다 함수와 클로저는 First Class Type이다 First Class Type이란 변수에 할당할 수 이다 인자로 받을수 있다 리턴 할..
[TIL] Swift. Type Casting(feat. is, as)
Type Casting 코딩 강의를 보면서 is 또는 as가 언제 쓰이게 되고 왜 이렇게 쓰이는지 궁금해서 정리하게 되었습니다. Type Casting? 스위프트는 다른 프로그래밍 언어에서 대부분 지우언하는 암시적 데이터 타입 변환은 지원하지 않습니다. 아래의 예시는 Int(value)라는 형태의 데이터 타입으로 형태를 변경해주는데, 이는 이니셜라이저와 같습니다. 즉, 기존의 데이터를 전달인자로 받아 새로운 Int 구조체의 인스턴스를 생성하게 됩니다. 스위프트에서는 이를 타입 캐스팅이 아니라, 이니셜라이즈를 통해 새로운 인스턴스를 생성하는 과정이라합니다. var value: Double = 3.3 var convertedValue: Int = Int(value) convertedValue = 5.5 //..