본문 바로가기

전체 글

(30)
벨만 포드 알고리즘 - swift youjean.tistory.com/25 2020 브랜디 코딩대회 '코드네임B' 후기 - swift 코딩테스트 2020 브랜디 코딩대회 '코드네임B' 이런 코딩 테스트가 저번 주말에 있었는데요 https://velog.io/@devgosunman/2020-%EB%B8%8C%EB%9E%9C%EB%94%94-%EC%BD%94%EB%94%A9%EB%8C%80%ED%9A%8C-%EC%BD%94%.. youjean.tistory.com → 브랜디 코테 후기를 올린 이전 포스팅 ​ 2020 브랜디 코딩대회 '코드네임B'의 3번 문제를 찾다가 이 알고리즘을 찾게 되었는데요 ​ 3번 문제의 답안(답)은 아래와 같습니다. struct Edge { var e = 0 var v = 0 init(e: Int, v: Int) ..
[swift] CAShapeLayer / CABasicAnimation / CAKeyframeAnimation https://blog.naver.com/p41155a/222066801303 [swift] UIBezierPath로 직선 및 도형 그리기 이러한 애니메이션을 만들어야 하는 업무를 받게 되어​UIBezierPath 및 CAShapeLayer, CABasic... blog.naver.com 저번에 UIBezierPath 를 통해 직선 및 곡선을 그려 보았습니다. ​ 단순히 선만 긋는 것이라면 path.stroke()이거나 path.fill()를 통해 그리기가 가능하지만 애니메이션을 넣을 것이라면 CALayer이라는 것을 활용해야합니다. ​ CALayer (CA = Core Animation) - UIView 는 CALayer 형태의 Layer 를 하나 가지고 있다. - CALayer 는 뷰의 구성 요소로 ..
[swift] UIBezierPath로 직선 및 도형 그리기 이러한 애니메이션을 만들어야 하는 업무를 받게 되어 ​ UIBezierPath 및 CAShapeLayer, CABasicAnimation, CAKeyframeAnimation를 알아보게 되었습니다. ​ UIBezierPath 베지어경로 "custom view에서 만들 수 있는 직선 및 곡선 세그먼트로 구성된 경로"라고 나옵니다. ​ 그럼 내용에서 나온것 처럼 customView에 직선을 그리는 소스를 넣어 볼까요? class View1: UIView { override func draw(_ rect: CGRect) { let path = UIBezierPath() UIColor.systemRed.set() path.move(to: CGPoint(x: 10, y: 10)) path.addLine(to: C..
<swift> 코딩테스트 시간 초과 코딩테스트 연습을 하다보면 깔끔한 코드가 최고인것 처럼 고차함수를 남발하게 된다. 그러다가 2019 KAKAO BLIND RECRUITMENT 실패율 문제를 풀다가 시간초과라는 충격적인 결과가 나왔다. func solution(_ N:Int, _ stages:[Int]) -> [Int] { var fail:Dictionary = [Int:Double]() // 실패율 계산 후 저장 for i in 1...N{ // 도달한 수 let a = stages.filter{$0 >= i}.count // 클리어한 수 let b = a - stages.filter{$0 > i}.count // 실패율 let failCount = Double(b) / Double(a) fail[i] = failCount } // 실..
[swift] label 위쪽 정렬 위와 같은 제목을 치면 아래와 같은 포스팅 들이 많이 나온다 하지만 나는 이러한 button 두개를 하나의 view에 넣어 높이를 맞추어야 하는 상황에서 sizeToFit을 하면 view의 높이를 알 수 없었기 때문에 반드시 위쪽 정렬이 필요하다 느꼈다. 그래서 찾아본 결과 기존에 CustomButton에서 사용하던 UILabel 대신 VerticalAlignLabel형을 명시해줌으로서 간단히 해결할 수 있었다. 위와 같은 버튼을 만드는 법을 알고 싶은 분이라면 이전 포스팅을 참고하시길 바랍니다. public class VerticalAlignLabel: UILabel { enum VerticalAlignment { case top case middle case bottom } var verticalAl..
[swift] storyboard가 아닌 SnapKit 라이브러리를 사용하여 autoLayout 설정하기 - customButton(radioButton) 오늘은 저도 많이 사용하고 있는 SnapKit이라는 라이브러리에 대해 소개하고 아주 자그마한 프로젝트로 설명해 드리려고 합니다. stroyboard로 autolayout을 한다면 이런 식으로 설정할 수 있겠죠? 가끔 모든 프로젝트를 코드로만 만들기도 하지만 저는 어느정도 storyBoard에 형태가 나와 있는 것을 선호하기 때문에 위치정도는 storyBoard에 잡고 customButton을 만들어 줄게요 (xCode 11에서 바뀐 scroll View 오토레이아웃도 설명 드릴겸) 예제 start! 우선 형태 먼저 만들어 줄까요? 이제 스크롤 뷰를 만들면 기존과 달리 content Layout Guide, Frame Layout Guide가 추가 되어 나오는데요 아래와 같이 스크롤 뷰는 safeArea에..
Reactive 문서보는 법(rxswift 와 mvvm 도전기2) 이렇게 많은 language들을 지원하는 ReactiveX를 사용하시는 분이 많을 텐데요 저는 공부를 할때 공식 사이트의 문서를 활용하는 것을 좋아하는데 이 문서를 쉽게 볼 수 있게 되어 있어 ReactiveX가 더욱 맘에 들었습니다. ​ 공식사이트 에서문서 보는 방법을 알려드리고 함께 공부하면 좋겠다는 마음에서 포스팅을 하게 되었습니다. http://reactivex.io/ 위의 문서는 Observable 링크에 들어간것인데요 여기서 문서는 위의 그림으로 알 수 있고, 이 그림을 '마블 다이어그램' 이라고 하는 것을 알 수 있습니다. 다음은 Operator에 들어가볼까요? 그 후 스크롤을 아래로 쭉쭉 내려주세요!! 그러다 보면 아래와 같은 화면을 보실 수 있는데요 볼드체와 그렇지 않은 것들로 섞여 있는..
rxswift 와 mvvm 도전기1 대부분의 사람들이 mvvm 아키텍처를 사용하려고 할때 많은 이유가 있을 것 같습니다. 대다수의 사람들은 자신의 어플을 유지보수 하기 쉽도록 하기 위해서 일것 입니다. 저 또한 mvvm의 유용성에 대해 알게 되었고 도전하게 되었습니다. ​ RxSwift란? 그리고 MVVM이란? 처음 RxSwift와 mvvm에 대해 배우려 할때는 정확히 어떤 것이고 어떤 특성이 있는지 알아야 겠지요? ​ "RxSwift" RxSwift 는 rx + swift로 ReactiveX와 swift의 합성어 입니다. ReactiveX를 처음 들어보신 분들이라면 아직 이해가 잘 가지 않으시죠? 라고 위키 백과에서 나오는데요 동기 비동기의 개념은 전공자들이라면 아실 것이라 생각하고 넘어가겠습니다. ​ ReactiveX는 관찰 가능한 시..