전체 글 391

[프로그래머스] 기사단원의 무기 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr try) 1. 1부터 number를 돌면서 약수를 구하려했다. 2-1)약수를 구할때 1부터 number까지의 수를 돌면서 나누어 떨어지면 약수이니 count를 늘리는 방식으로 했다. -> 불필요한 반복을 진행해 실행 초과가 났다. 2-2)약수는 보통 쌍을 이루니 number의 중간 수까지 나누어 떨어지는 수를 구한다음 쌍에 맞게 추가하는 방식으로 했다. -> number가 10일 경우 10 / ..

[프로그래머스] 대충 만든 자판 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/160586 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr import Foundation func solution(_ keymap:[String], _ targets:[String]) -> [Int] { var dic: [String:Int] = [:] var result = [Int]() // dic- key:알파벳, value: index 저장 for k in keymap{ var index = 1 for word in k{ if dic[Strin..

[프로그래머스] 뒤에 있는 큰 수 찾기 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr - Stack 을 이용하여 현재 수보다 크지 못한 수들의 위치를 push해서 쌓아 올림 - 큰수가 생기면 result의 요소들을 다음으로 큰수로 변경 * 7, 20~23 번 런타임, 실행초과 에러 = For문 중복 + 마지막 요소가 큰 수 일 경우 비효율 적일 수 있음 import Foundation func solution(_ numbers:[Int]) -> [Int] { var result ..

[프로그래머스] 연속된 부분 수열의 합 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/178870 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 나만의 풀이 방법) - 왼쪽 인덱스 left 와 오른쪽 인덱스 right 지점을 정한다. - left부터 right 구간에 속한 값들을 모두 더한 것이 sum이다. - 만약 sum이 k보다 작다면 right 값을 1증가시키고 sequence[right] 를 sum에 더해준다. 이유: 구간의 합이 k보다 적기 때문에 다음 인덱스값을 더함 *이때 right값이 sequence배열의 갯수 보다 크면 ..

[프로그래머스] N개의 최소공배수 (Swift)

https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이) 나눗셈을 이용하여 최소공배수를 구했다. 1을 제외한 수중에서 두가지 이상의 숫자가 나눠지면 계속 나누면 된다. 예제로 12,32,45,67,72 의 최소공배수를 구할때 다음과 같이 구할 수 있다. 2 | 12 32 45 67 72 3 | 6 16 45 67 36 2 | 2 16 15 67 12 3 | 1 8 15 67 6 2 | 1 8 5 67 2 ------------------ 1 4 ..

[iOS] CompletionHandler (비동기처리)

직역 The completion handler to execute after the activity view controller is dismissed. 액태비티 뷰 컨트롤러가 해제된 후 실행할 완료 핸들러 - 비동기(작업이 순차적으로 실행되지 않고 별도의 스레드나 큐에서 실행되는) 작업이 완료되었을때 실행되는 클로저 - 대표적으로 네트워크 요청의 응답 처리, 파일 다운로드 및 데이터 처리 등이 있다. - 이 프로퍼티는 UIActivityViewControllerCompletionHandler 타입의 클로저를 저장한다. - 클로저는 nullable로 설정되어 있어 값을 가질 수도있고, nil일 수도 있다. - nonatomic: 멀티 스레드 환경에서 해당 프로퍼티에 동시에 접근하지 않는다. - copy:..

iOS랑 친해지기 2023.08.31

[iOS] Then 라이브러리

https://github.com/devxoul/Then GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers ✨ Super sweet syntactic sugar for Swift initializers - GitHub - devxoul/Then: ✨ Super sweet syntactic sugar for Swift initializers github.com 사용 이유 - Swift 초기화를 할때 간편하고 깔끔하게 코드를 만들어 준다 특징 - NSObject 하위 클래스는 모두 사용가능하다 - Then의 경우 Protocol로 구현되어 있다. Then 사용 전 객체 생성코드 let titleLabel: UILabel =..

[iOS] 백그라운드일때 이벤트 발생 (NotificationCenter)

- 등록된 옵저버에게 동시에 정보를 브로드 캐스트 할 수 있는 클래스 - NotificationCenter에 등록된 이벤트가 발생하면 이벤트에 대한 행동을 취함 - 백그라운드, 비동기 작업의 결과 등 현재 작업의 흐름과 다른 흐름의 작업으로부터 이벤트를 받을떄 사용함 옵저버 추가 addObserver(observer:selector:name:object:) - observer: 옵저버가 될 객체 - selector: 이벤트가 발생했을때 호출될 메서드 - name: 등록하려는 이벤트 이름 (NSNotification.Name 타입) - objcet: 발송자가 옵저버에게 보내려고 하는 객체 - NSNotification.Name: 이벤트의 이름을 나타내는 타입. 주로 문자열 상수로 사용되며, 이벤트 식별에 ..

iOS랑 친해지기 2023.08.15

[iOS] Frame 과 Bounds (feat.CGPoint, CGSize, CGRect)

UI위치를 구성하다 갑자기 헷갈려서 복습겸 frame과 bounds에 대하여 정리해보았다. Frame bounds는 둘다 CGRect형이다. CGRect는 origin(x,y좌표) 와 size(width,height)로 구성되어 있다. x,y좌표인 CGPoint 형태, size 크기는 width,height값을 구하는 CGSize형태 CGPoint - 2차원 좌표계에서 점을 구하는 구조체 CGSize - 너비 및 높이 값을 구하는 구조체 CGRect 사각형의 위치와 크기를 포함하는 구조체 Frame과 Bounds는 UIView의 instance property이고 CGRect형이라 x,y,width,height을 가짐 frame 한단계 상위 뷰에서의 위치에서의 사각형 bounds 자신만의 좌표시스템에서의..

iOS랑 친해지기 2023.08.03