분류 전체보기 104

프로그래머스 - 소수 만들기 (Swift, Level1)

문제 👇 https://school.programmers.co.kr/learn/courses/30/lessons/12982 문제설명 📝 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 💡 nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다. nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 입출력 예 nums result [1,2,3,4] 1 [1,2,7,6,4] 4 입출력 예 설명 입출력 예 #1 입출력 ..

프로그래머스 - 예산 (Swift, Level1)

문제 👇 https://school.programmers.co.kr/learn/courses/30/lessons/12982 문제설명 📝 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 ..

야곰 아카데미 - 커리어 스타터 수료 후기

6개월간(2022.04.11 ~ 2022.10.17)의 야곰 아카데미 캠프 기간을 보냈다. 조금이라도 기억이 남아있을 때 회고를 짧게나마 적어보았다. 왜 야곰 아카데미를 선택했나? iOS 공부를 하기 위해 유튜브를 통해서 야곰이 올린 유튜브 강의를 본적이 있다. 유튜브 강의보면서도 내용도 내용이지만, 야곰의 목소리가 귀에 쏙쏙 들어왔다.(전달력이 좋았다!!). 그리고나서 우연치 않게 야곰아카데미가 있다는 것을 알았다. 수강 결정에 있어 온라인교육이라서 고민은 있었지만, 현업자의 리뷰와 협업 경험이 예비 개발자로써 좋은 경험이 될 것 같았다. 그래서 제대로 iOS개발자가 되기 위한 첫 발판을 야곰아카데미로 선택했다! 야곰 아카데미에서 무엇을 배웠나? 1. 공부하는 방법 일단 주입식 교육이 절대적으로 아니였..

iOS) 프레임워크와 라이브러리에 대해서

프레임워크 프레임워크란?? 컴퓨터 프로그래밍에서 소프트웨어 프레임워크는 복잡한 문제를 해결하거나 서술하는데 사용되는 기본 개념 구조 입니다. - by 위키 정리하자면 개발자에게 구조와 형태를 제공하는 뼈대라고 생각할 수 있습니다. 프레임워크가 제공하는 프레임워크 위에 코드를 작성해서 개발할 수 있습니다. 또한 앱의 구동과 메모리 관리도 프레임워크가 해줍니다. 프레임워크를 사용하는 이유 기반 코드를 프레임워크가 제공하기 떄문에 개발자가 손쉽게 개발 진행할 수 있습니다. 프레임워크는 공통적인 틀(기준)을 제공해서 여러 프로젝트를 진행해도 동일한 프레임워크를 사용하면 코드의 기본 틀은 동일 하기 때문에 가독성과 유지보수 관리가 좋아져서 생산성 향상에 도움을 줄 수 있습니다. iOS에서 대표적으로UIKit과 F..

iOS/iOS 2022.10.19

Swift) 옵저버 프로퍼티를 이용한 데이터 바인딩

데이터 바인딩을 위한 필요한 것에 대해 생각해 보자 프로퍼티 옵저버를 등록한 저장 프로퍼티 프로퍼티 옵저버에 등록되어 값이 변경될 떄마다 호출될 클로저 프로퍼티 생성 특정 행동에 대한 실행 메소드 선언을 위한 @escaping 클로저 함수 예시 코드 데이터 바인딩 실행 순서에 대해 생각해보자 옵저버 프로퍼티에 선언된 클로저 변수 실행 myData 프로퍼티 값 변경 될 때마다 클로저 변수 실행 Why? 옵저버 프로퍼티에 클로저 변수가 선언되어 있어서 이스케이핑 클로저 함수에서 특정 행동을 등록하면 프로퍼티에 변화가 있을 시 실행 예제 코드에서 print()문을 수행할 것을 등록 @escaping 클로저(callback) 실행 Why? myDataListener가 클로저(callback)를 알고 있어 매개변..

iOS/Swift 2022.10.18

Swift) Delegate, Notification 둘 중 어느 것을 사용해야 할까

앱에서 화면 간 데이터 전달을 위해 여러 방식이 있는데 대표적으로 Delegate와 Notification이 있는데 둘 중에 어떠한 상황에서 어떤 것을 쓰는게 좋을까 생각해 보았다. 일단 각 패턴에 대해 알아보자 Delegate Delegate 패턴은 다른 객체의 인스턴스를 내부적으로 가지고 있어 그 인스턴스를 활용하는 방식으로 사용 Notification 값의 변화에 따라 이벤트가 발생해야할 때 이것을 observe 하고 있는 방식으로 사용 구현 방법 및 사용방법 Delegate Delegate를 위한 프로토콜이 필요하다. 이벤트 처리 담당 객체가 알고 있어야함 Notification 값의 변화가 필요한 값에 observe하고 그에 맞는 이벤트만 발생시켜주면 됨 각 패턴의 장단점 Delegate 장점 ..

iOS/Swift 2022.10.12

Swift) Realm 연동하기

Realm 연동하기 1. 터미널 프로젝트 경로로 이동 cd "프로젝트 경로"2. CocoaPod 설치하기 sudo gem install cocoapods3. Podfile 생성 pod init4. Podfile 수정 (RealmSwift 추가) - nano 에디터 사용 sudo nano Podfile4-1. Podfile에 pod 'RealmSwift' 내용 입력 # Uncomment the next line to define a global platform for your project # platform :ios, '9.0' target 'ProjectManager' do # Comment the next line if you don't want to..

iOS/Swift 2022.10.12

Swift) DatePicker

DatePicker UIDatePicker란?? A control for inputting date and time values. -> 날짜 및 시간 값을 입력하기 위한 컨트롤 사용자가 원하는 날짜 및 시간을 선택하기 위한 컨트롤러로 보인다. DatePicker 구성 DatePicker를 구성하는 핵심 속성표 Style: DatePicker의 모양을 결정, datePickerStyle 프로퍼티를 사용하여 런타임에 이 값에 액세스 합니다. 각 Style 적용화면 automatic compact inline wheels 날짜 및 시간 표시 제어 속성 표 Date 기본 속성은 현재 날짜 기준으로 표기, 날짜 속성을 설정하는 것과 동일한 방식으로 수정가능 Constraints 선택 가능한 날짜의 범위, 범위 설..

iOS/Swift 2022.09.10