프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12910 풀이 import Foundation func solution(_ arr:[Int], _ divisor:Int) -> [Int] { var value: [Int] = [] for i in arr { if i % divisor == 0 { value.append(i) } } return value.count == 0 ? [-1] : value.sorted() } 중요 개념 조건에 맞는 요소를 고르고, 정렬하는 문제이다 오름차순/내림차순 정렬할 수 있는 메서드 -> sorted(of:) sorted 를 사용하는 비슷한 문제 : https://yy-dev.tistory...
전체 글
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12919 풀이 func solution(_ seoul:[String]) -> String { return String("김서방은 \(seoul.firstIndex(of: "Kim")!)에 있다") } 중요 개념 배열의 요소를 사용해서 인덱스를 구할 수 있는 메서드 -> firstIndex(of:) firstIndex(of:) -> 배열의 앞부터 순회하며 체크 lastIndex(of:) -> 배열의 뒤부터 순회하며 체크 https://developer.apple.com/documentation/swift/array/firstindex(of:) firstIndex(of:) | ..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12943 풀이 func solution(_ num:Int) -> Int { guard num != 1 else { return 0 } var value: Int = num var count: Int = 0 while value != 1 && count
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12912 풀이 func solution(_ a:Int, _ b:Int) -> Int64 { if a == b { return Int64(a) } else { return Int64((a a와 b의 대소관계는 정해져있지 않습니다. Swift의 범위 연산자 ... 는 반드시 앞에 작은 수가 와야 하기 때문에 a와 b 둘 중 무엇이 더 큰지 확인해주어야 한다
내일배움캠프 앱개발 iOS 트랙 본캠프 1주차 Today I Learned 성취 - 오늘의 나는 무엇을 했는지 상속 Inheritance 과 재정의 Overriding 에 대해 공부 프로퍼티 감시자(옵저버) Property Observer 에 대해 공부 개선 - 어떤 문제를 겪었는지, 어떻게 해결할 것인지 스위프트에서 중요한 개념인 상속에 대해 공부했다. 이전에 자바할때 고생을 해서 그런가 상속 개념 자체가 어렵진 않았다 그러나 용법이 다른 부분이 많아서 그런 부분을 중심적으로 파악했다 공식문서의 워딩이 이해하기 힘들어서, 이미 파악한 뒤 정리해서 기록한 다른 개발자분들의 블로그를 많이 읽었다 학습 - 나는 어떤 것을 배웠는지 상속 (Sub-Classing)이란, 어떤 한 클래스가 다른 클래스로부터 프로..
상속 Inheritance 클래스가 다른 클래스로부터 메서드, 프로퍼티 등을 물려받는 것 Class의 상속 상속은 클래스에서만 할 수 있다 클래스는 단일 상속만 허용한다 메서드, 프로퍼티 등 기타 특징을 상속 가능하다 Sub-Classing 기존에 있던 클래스를 기반으로 새로운 서브 클래스를 만드는 것 == 상속 class Human { var name: String? var age: Int? var job: String? } class Teacher: Human { var subject: String? } Teacher 클래스는 Human 클래스를 상속받았다 Human의 멤버인 name, age, job을 사용할 수 있다 let teacher: Teacher = .init() teacher.name -..
프로퍼티 감시자 - 특징 프로퍼티의 값이 변할때, 동작을 수행한다 값이 바뀌기 직전에 호출되는 willSet 값이 바뀐 뒤에 호출되는 didSet 매개변수 이름이 지정되지 않았다면, 명시적으로 newValue 와 oldValue로 사용할 수 있다 willSet과 didSet 둘 중 하나만 작성해도 된다! var currentValue:Int = 100 { willSet { print("\(currentValue)에서 \(newValue)로 변경될 예정입니다") } didSet(oldData) { print("\(oldData)가 \(currentValue)로 변경되었습니다") } } 변경하려는 값이 현재 값과 같아도 동작한다 함수, 메서드, 클로저, 타입 등의 지역/전역 변수에 모두 사용 가능 - 예시..
프로그래머스 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12934 풀이 import Foundation func solution(_ n:Int64) -> Int64 { let value = Int64(sqrt(Double(n))) return value*value == n ? (value+1)*(value+1) : -1 } 문제 더보기 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 중요 개념 제곱근 메소드를 사용해서 체크해주는게 우선이다 -> sqrt() ..
프로그래머스 문제 링크 :https://school.programmers.co.kr/learn/courses/30/lessons/12947 풀이 import Foundation func solution(_ x:Int) -> Bool { let sum = String(x).reduce(0, {$0 + Int(String($1))!}) return x%sum == 0 ? true : false } 중요 개념 양의 정수 x가 주어졌을 때 x 자릿수 합으로 x가 나누어 떨어져야 한다 x 자릿수의 합을 구해서 x의 나머지가 0인지 아닌지 확인하면 된다 x 자릿수의 합 구하기 -> reduce() 사용 나머지 구하는 연산자 -> % 하다가 웃겨서 남겨두고 싶었던 내 풀이... print 값 보려고 노력하는게 가상하다
프로그래머스 문제 링크 :https://school.programmers.co.kr/learn/courses/30/lessons/12933 풀이 func solution(_ n:Int64) -> Int64 { return Int64(String(String(n).sorted(by: >)))! } String(n).sorted(by: >) -> 배열 String(String(n).sorted(by: >)) -> 문자열로 바꿔주기 Int64(String(String(n).sorted(by: >))) -> 반환형 맞춰주기 / 옵셔널로 리턴됨 강체추출 ! 를 해준다 중요 개념 내림차순, 오름차순으로 정렬할 수 있는 메소드 sorted(by:) 를 이용한다 sorted(by: >) -> 내림차순으로 정렬 http..
내일배움캠프 앱개발 iOS 트랙 본캠프 1주차 Today I Learned 성취 - 오늘의 나는 무엇을 했는지 구조체, 클래스, 열거형, 클로저... 사전캠프서 봤던것을 쭉 복습하다가 프로퍼티에 발이 턱 걸렸다😡 스위프트에서 사용한다는 ARC에 대한 내용을 공식 도큐먼트를 통해 학습했다 저장/연산 프로퍼티에 대한 내용을 학습했다 개선 - 어떤 문제를 겪었는지, 어떻게 해결할 것인지 ARC autumatic reference counting 자동 참조 세기 말 그대로 자동으로 참조의 갯수를 세어준 다음, 사용하지 않는다면 메모리를 해제해준다는 의미❗❗ 왜 자동으로 해줄까? Heap에 저장되는 참조타입의 클래스는 원래대로라면 프로그래머가 직접 할당하고 해제를 해주어야 한다 -> 과거 오브젝티브 C 시절의 M..
애플 스위프트 공식 문서의 첫 문단 더보기 Swift uses Automatic Reference Counting (ARC) to track and manage your app’s memory usage. In most cases, this means that memory management “just works” in Swift, and you don’t need to think about memory management yourself. ARC automatically frees up the memory used by class instances when those instances are no longer needed. 스위프트는 당신의 앱 메모리 사용을 추적하고 관리하기 위해 자동 참조 세기(AR..