테킷 앱 SCHOOL : iOS에 지원해주신 예비 수강생 여러분 모두 반갑습니다 
사전 과제 제출 방법을 안내 드립니다.
아래의 내용을 확인하시고, 기간 내에 지원을 완료하여 주시기 바랍니다. (9월 3일 자정까지 )
과제 제출 관련 안내
[문제 관련]
•
[과제 제출 방법]
1.
아래의 두 가지 방법 중 하나를 선택하여 과제 제출 링크 생성
2.
구글 폼으로 해당 링크 제출
* 해당 테스트는 선발 과정에 영향을 미치지 않으며, 팀 구성을 위한 테스트입니다!
(* 문제 제출이 어려우시다면 문제 제출이 어려움을 체크해 제출해주시면 됩니다!)
[과제 마감]
과제 제출 마감은 9.3(일) 자정까지 이며 모두 시간에 맞춰서 구글 폼으로 과제 제출 부탁 드립니다.
궁금한 사안이 있으시다면 채널 톡으로 문의 부탁 드립니다 [techit.channel.io]
** **
문제 안내 (4 문제 중 택 1 제출)
아래의 결과가 나오게 코드 구현 부분의 코드를 작성해주세요.
•
중급 : Swift를 이용하여 알려진 알고리즘 문제해결
•
고급 : Swift 함수 / 객체 지향(상속)
초급 1
큰 수 구하기 (초급)
2개의 정수를 받아 2개의 숫자 중 10에 더 가까운 수를 반환하는 함수 closeTo10을 만들어 다음과 같은 결과를 출력하세요.
(만약 두 숫자 모두 10과의 차이가 같다면 첫 번째 수를 반환)
// 코드구현 (코드 작성)
// ,..
print( closeTo10(2, 7) )
print( closeTo10(8, 5) )
print( closeTo10(2, 13) )
Swift
복사
결과
7
8
13
Swift
복사
초급2
윤년 구하기 (초급)
그레고리력의 정확한 윤년 규칙은 다음과 같다. - 위키백과
•
서력 기원 연수가 4로 나누어 떨어지는 해는 윤년으로 한다. (1988년, 1992년, 1996년, 2004년, 2008년, 2012년, 2016년, 2020년, 2024년, 2028년, 2032년, 2036년, 2040년, 2044년 ...)
•
서력 기원 연수가 4, 100으로 나누어 떨어지는 해는 평년으로 한다. (1700년, 1800년, 1900년, 2100년, 2200년, 2300년...)
•
서력 기원 연수가 4, 100, 400으로 나누어 떨어지는 해는 윤년으로 둔다. (1600년, 2000년, 2400년...)
2000년도 부터 2100년까지 윤년을 나열하는 프로그램을 구현하세요.
결과
2000
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
2052
2056
2060
2064
2068
2072
2076
2080
2084
2088
2092
2096
Swift
복사
중급
피보나치수열(재귀호출) (중급)
수학에서 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다. 처음 여섯 항은 각각 1, 1, 2, 3, 5, 8이다. 편의상 0번째 항을 0으로 두기도 한다. - 위키백과
재귀호출 방식으로 Fibonacci 함수를 구현하세요.
import Foundation
func Fibonacci(_ num: Int) -> Int {
// 코드구현
// ,..
}
print( Fibonacci(5) )
print( Fibonacci(10) )
print( Fibonacci(20) )
Swift
복사
결과
5
55
6765
Swift
복사
고급
애플제품 구독 클래스 만들기 (고급)
애플제품 소식을 취급하고 있는 XStore에 구독하여 신제품 정보를 받고 싶습니다. 주어진 Publisher, Observer 프로토콜을 사용하여 정보를 구독하는 프로그램을 완성하세요.
import Foundation
protocol Publisher {
var observers: [Observer] { get set }
func subscribe(observer: Observer)
func unSubscribe(observer: Observer)
func notify(message: String)
}
protocol Observer {
var id: String { get set }
func update(message: String)
}
// 코드구현
// ,..
let xStore = XStore(observers: [])
let cheolsu = Customer(id: "철수")
let younghee = Customer(id: "영희")
let mina = Customer(id: "미나")
let minsu = Customer(id: "민수")
// 구독
xStore.subscribe(observer: cheolsu)
xStore.subscribe(observer: younghee)
xStore.subscribe(observer: minsu)
xStore.notify(message: "iPhone 15 출시!")
// 구독취소
xStore.unSubscribe(observer: younghee)
xStore.notify(message: "iPad Pro 입고!")
Swift
복사
결과
철수님 iPhone 15 출시!
영희님 iPhone 15 출시!
민수님 iPhone 15 출시!
철수님 iPad Pro 입고!
민수님 iPad Pro 입고!
Swift
복사