본문 바로가기

반응형

분류 전체보기

(161)
[코딩테스트 입문] Swift - Day 4 Q. 머쓱이는 40살인 선생님이 몇 년도에 태어났는지 궁금해졌습니다. 나이 age가 주어질 때, 2022년을 기준 출생 연도를 return 하는 solution 함수를 완성해주세요. func solution(_ age:Int) -> Int { 2022 - age + 1 } Q. 각에서 0도 초과 90도 미만은 예각, 90도는 직각, 90도 초과 180도 미만은 둔각 180도는 평각으로 분류합니다. 각 angle이 매개변수로 주어질 때 예각일 때 1, 직각일 때 2, 둔각일 때 3, 평각일 때 4를 return하도록 solution 함수를 완성해주세요. 예각 : 0 < angle < 90 직각 : angle = 90 둔각 : 90 < angle < 180 평각 : angle = 180 func soluti..
[코딩테스트 입문] Swift - Day 3 Q. 정수 num1, num2가 매개변수로 주어질 때, num1를 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요. func solution(_ num1:Int, _ num2:Int) -> Int { num1 % num2 } Q. 중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요. array의 길이는 홀수입니다. 0 Int in return array.filter {$0 == number}.count } // countOfMaxValue는 동일한 개수가 담긴..
[코딩테스트 입문] Swift - Day 2 Q. 정수 num1과 num2가 매개변수로 주어질 때, num1을 num2로 나눈 값에 1,000을 곱한 후 정수 부분을 return 하도록 soltuion 함수를 완성해주세요. func solution(_ num1:Int, _ num2:Int) -> Int { num1 * 1000 / num2 } Q. 정수 num1과 num2가 매개변수로 주어집니다. 두 수가 같으면 1 다르면 -1을 retrun하도록 solution 함수를 완성해주세요. func solution(_ num1:Int, _ num2:Int) -> Int { num1 == num2 ? 1 : -1 } Q. 첫 번째 분수의 분자와 분모를 뜻하는 denum1, num1, 두 번째 분수의 분자와 분모를 뜻하는 denum2, num2가 매개변수로..
[코딩테스트 입문] Swift - Day 1 // 두 수의 곱을 구하는 코드를 완성하시오. import Foundation func solution(_ num1:Int, _ num2:Int) -> Int { num1 * num2 }​ // 두 수의 합을 구하는 코드를 완성하시오. import Foundation func solution(_ num1:Int, _ num2:Int) -> Int { num1 + num2 } // 두 수의 차를 구하는 코드를 완성하시오. import Foundation func solution(_ num1:Int, _ num2:Int) -> Int { num1 - num2 } // 두 수의 몫을 구하는 코드를 완성하시오. import Foundation func solution(_ num1:Int, _ num2:Int) ..
[Swift - 문법] 프로퍼티(Property) - 3. 타입 프로퍼티 1. 타입 프로퍼티 타입 프로퍼티는 각각의 인스턴스가 아닌 타입 자체에 속하는 프로퍼티입니다. 아래에서 살펴보겠지만 인스턴스를 정의한 후에도 타입 프로퍼티에 직접적으로 영향을 주고, 같은 클래스로 정의된 인스턴스들에도 일괄적으로 영향을 줍니다. 모든 인스턴스에서 공용으로 접근하고 값을 변경할 수 있는 변수 등을 정의할 때 유용합니다. 타입 프로퍼티의 종류 (1) 저장 타입 프로퍼티 - 변수와 상수로 선언 가능 - 초기값 설정이 반드시 필요 (2) 연산 타입 프로퍼티 - 변수로만 선언 가능 2. 예시 코드 class User { // 저장 타입 프로퍼티 static var age: Int = 0 // 저장 인스턴스 프로퍼티 var instanceAge: Int = 0 { didSet { Self.age =..
[Swift - 문법] 프로퍼티 감시자(Property observers) 프로퍼티 감시자 - 프로퍼티 값이 변하는 것을 감시 - 프로퍼티의 값이 변할 때 값의 변화에 따른 특정 작업을 실행 - 프로퍼티 감시자는 저장 프로퍼티에 적용할 수 있으며 부모클래스로부터 상속받을 수 있습니다. 프로퍼티 감시자에는 "willSet" 과 "didSet" 두 메소드가 존재합니다. willSet : 프로퍼티의 값이 변경되기 전에 호출돼서 변경될 값을 "매개변수"로 갖습니다. didSet : 프로퍼티의 값이 변경된 후에 호출돼서 변경되기 전의 값을 "매개변수"로 갖습니다. 아래 코드에서 예시를 확인하시겠습니다. class CoinPrint { var coin: Int = 0 { willSet { // 편의상 print 를 두 번 실행하도록 했습니다. print("이 부분은 값이 변경되기 전에 호..
[Swift - 문법] 프로퍼티(Property) - 2. 연산 프로퍼티 https://axce.tistory.com/147 [Swift - 문법] 프로퍼티(Property) - 1. 저장 프로퍼티 프로퍼티: 클래스, 구조체 또는 열거형 등에 관련된 값 메소드: 특정 타입에 관련된 함수 1. 프로퍼티 프로퍼티는 크게 세가지 종류의 프로퍼티가 있습니다. 1. 저장 프로퍼티: 인스턴스의 변수 axce.tistory.com 1. 연산 프로퍼티 연산 프로퍼티는 실제 값을 저장하는 프로퍼티는 아닙니다. 단지 특정 상태에 따른 값을 연산하는 프로퍼티입니다. 인스턴스 내/외부의 값을 연산해 적절한 값을 돌려주는 접근자(getter)의 역할이나 은닉화된 내부의 프로퍼티 값을 간접적으로 설정하는 설정자(setter)의 역할을 할 수도 있습니다. 클래스, 구조체, 열거형에 연산 프로퍼티를 정의..
[Swift - 문법] 프로퍼티(Property) - 1. 저장 프로퍼티 프로퍼티: 클래스, 구조체 또는 열거형 등에 관련된 값 메소드: 특정 타입에 관련된 함수 1. 프로퍼티 프로퍼티는 크게 세가지 종류의 프로퍼티가 있습니다. 1. 저장 프로퍼티: 인스턴스의 변수 또는 상수로 구조체와 클래스에서만 사용할 수 있습니다. 2. 연산 프로퍼티: 값을 저장한 것이 아닌 특정 연산을 실행한 결괏값으로 클래스, 구조체, 열거형에 쓰일 수 있습니다. 3. 타입 프로퍼티: 특정 타입에 사용되는 프로퍼티입니다. 2. 저장 프로퍼티 인스턴스의 변수 또는 상수로 구조체와 클래스에서만 사용할 수 있습니다. (1) 기본 저장 프로퍼티 // 좌표 struct CoordinatePoint { var x: Int var y: Int } // 구조체에는 기본적으로 저장 프로퍼티를 매개변수로 갖는 이니셜라..
[Swift - 문법] 구조체와 클래스 1. 구조체 구조체는 struct 키워드로 정의합니다. 구조체를 정의한다는 것은 새로운 타입을 생성해주는 것과 마찬가지이기 때문에 기본 타입 이름처럼 대문자 카멜케이스를 사용해 이름을 짓습니다. 구조체는 상속이 되지 않습니다. struct [구조체 이름] { [프로퍼티와 메소드] } struct Person { // "이름" 부분은 초기값을 정해주는 부분입니다. // 이렇게 초기값을 정해주면 인스턴스를 생성할 때 값을 생략할 수 있습니다. var name: String = "이름" var age: Int var height: Int var weight: Int } // 구조체의 인스턴스 생성 및 초기화 var axce: Person = Person(name: "Sudon Noh", age: 31, hei..
[Swift - 문법] 함수 1. 기본 함수 스위프트에서는 매개변수의 타입이 다르면 같은 이름의 함수를 여러 개 만들 수 있습니다. 또 매개변수의 개수가 달라도 같은 이름의 함수를 만들 수 있습니다. func hello(name: String) -> String { return "Hello \(name)!" } let helloStark: String = hello(name: "Stark") print(helloStark) // "Hello Stark!" func introduce(name: String) -> String { "제 이름은 " + name + "입니다." } let helloThor: String = introduce(name: "Thor") print(helloThor) // 제 이름은 Thor입니다. func p..

반응형