분류 전체보기
-
[실수 분석] 2021 카카오 인턴 3번, 문자열프로그래밍/코딩테스트 2021. 5. 10. 19:45
제목: [실수 분석] 2021 카카오 인턴 3번, 문자열 단순 구현 문제였다. 정확도는 통과가 되었지만, 효율성에서 반타작이 나왔다. 다른 사람 후기를 보아도 비슷하게 푼 것 같아 계속 원인을 찾아보다가 실수한 부분을 찾았다. (2021. 5. 15 수정) 처음에는 split, component 메서드부분이 원인이라고 생각했지만, 다른 분과 이야기를 하면서 이 부분은 메서드 변경할때마다 성능차이가 나는정도의 성능향상이라면 큰 의미가 없는것 같다고 판단되었다. 커서가 100만개의 첫부분과 맨끝부분을 계속 이동하게 될 때 문제를 해결하는 방향으로 해결해야 했던 것 같다.. 즉 세그먼트 트리, 펜윅 트리 + 이진탐색 등으로 커서 위치를 이동하는 부분을 해결해야 했던 것 같다. (2021. 12. 22 수정) ..
-
[RxSwift] Operators (scan, window)프로그래밍/Swift 2021. 4. 16. 23:52
1. scan 직전에 내려보낸 데이터와 현재 stream(위)에 있는 데이터 이렇게 2개 데이터를 특정한 연산을 하고 내려보냄. 예를들면 위의 stream에서 1은 내려보낸 것이 없어 그대로 내려가서 1이되고, 1 다음에 있는 2는 직전에 내려보낸 1과 연산(1+2)하여 3이 되고, 이것을 내려보낸다. reduce와 비슷한 것 같지만 reduce는 한개의 원소만 최종적으로 내려보내는 것이고(다르기도하고 operator reduce가 따로 존재하기도 함) scan은 한개씩 내려보내면서 직전에 내려보낸 것과 상호작용을 함. 사용예시 class MenuListViewModel { // var totalPrice: Observable = Observable.just(10_000) var totalPrice: P..
-
[RxSwift] subscribe, next, error, completed프로그래밍/Swift 2021. 4. 15. 19:06
1. subscribe 여러가지 처리하고 만들어진 Observable 데이터를 받아서 사용할 때 쓰는 키워드. Observable = 나중에 생기는 데이터, subscribe = 나중에 생기는 데이터를 꺼내 쓰는것. subscribe의 return타입은 disposable임. 다른 operator들은 return타입이 전부 stream임(Observable) DisposeBag에 여러 dispose한 것들을 담을 수 있지만 disposeBag.disposed()라는 메서드를 호출 할 수는 없음. 그래서 disposeBag 변수에 새로운 disposBag를 생성하는 것으로 disposed() 를 하게함. subscribe의 반환타입이 disposable이기 때문에, 보통사용할 때 외부의 변수로 생성한 di..
-
[RxSwift] Operators (just, from, map, filter)프로그래밍/Swift 2021. 4. 15. 17:07
1. just : 넣어주면 그대로 한번에 다음번으로 전달 생성 연산자. 빨간색 구슬은 데이터. 아래 화살표는 스트림. 스트림에 세로로 막대기가 있는것은 데이터가 끝남을 의미 (complete) --> disposableBag에서 사라짐. func just1() { Observable.just("Hello") .subscribe(onNext: { s in print(s) // Hello }) .disposed(by: disposeBag) } func just2() { Observable.just([1,2,3]) .subscribe(onNext: { arr in print(arr) // [1,2,3] }) .disposed(by: disposeBag) } func downloadJson1(_ url: Str..
-
개인정보 처리 방침 - iOSApps/UpcomingTodo 2021. 3. 26. 05:08
('https://turume.tistory.com/entry/iOS-%EA%B0%9C%EC%'이하 'turu')은(는) 「개인정보 보호법」 제30조에 따라 정부주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2021년 3월 26부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://turume.tistory.com/entry/iOS-%EA%B0%9C%EC%'이하 'turu')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 겨우에는 「개인정보 보호법」 제18조에 따라 별도의 동의..
-
-
[iOS] scrollViewDidEndScrollingAnimation이 시뮬레이터에서는 호출되지만 디바이스에서 호출되지 않을 때프로그래밍/iOS 2021. 3. 24. 23:23
문제 상황 테이블뷰에서 마지막 셀로 스크롤시켰을때, 스크롤 애니메이션이 끝날때 호출되는 메서드인 scrollViewDidEndScrollingAnimation에 마지막 셀에 접근하고 키보드 팝업을 올리려고 했다. tableView.scrollToRow를 사용했을 때 시뮬레이터에서는 scrollViewDidEndScrollingAnimation가 호출이 되었지만, 디바이스에서는 호출이 안되었다. 원인 scrollViewDidEndScrollingAnimation은 setContentOffset:animated:또는 scrollRectToVisible:animated:을 사용할 때만 호출된다고 한다. scrollToRow를 사용했을 때 시뮬레이터에서는 호출되었던건 왜 그런지 모르겠음. 해결방법 tableVi..
-
[iOS] hidesSearchBarWhenScrolling가 작동하지 않을 때프로그래밍/iOS 2021. 3. 13. 23:17
문제 상황: navigationItem.hidesSearchBarWhenScrolling = true 위 코드를 사용해서 UISearchBar가 스크롤 할 때 사라지는 것을 기대했지만 사라지지 않음 해결 방법: 빨간색 박스가 그려져 있는 왼쪽사진이 처음 문제가 발생했을 때 구조고, 오른쪽은 해결했을 때의 구조임. 문제가 발생했을 때 content view아래에 toolbar와 scroll view가 같이 있는데, toolbar가 scroll view 순서가 뒤에 와 있음. 오른쪽 사진처럼 드래그 이벤트가 발생하는 scroll view를 순서를 맨 뒤로 보내면 해결됨.
-
[iOS] tableView.indexPath(for: UITableViewCell)이 nil이 반환될 때프로그래밍/iOS 2021. 3. 9. 01:05
indexPath(for:) Declaration func indexPath(for cell: UITableViewCell) -> IndexPath? 우선 셀은 지속적으로 재사용되고 테이블뷰에 의해 관리되고 있으므로 외부에서 cell을 직접참조를 해서 어떤 작업을 하는 것은 피해야한다. 원인: nil이 발생하는 원인은 아직 추가되지 않은 셀, 셀이 표시가 되지 않고 있음, indexPath가 범위를 벗어남 이 있다고 한다. 그러나 내 경우는 화면상에 셀이 보이고 있는 상태인데 계속 nil이 반환되었다. 정확히는 모르지만 셀 내부 컨텐츠뷰들을 수정하고나면 어떠한 이유로 인해서 nil이 반환하는 일이 생기는 것 같다. 조건: textView의 텍스트를 수정하지 않으면 nil이 발생하는 일이 없었다. 전후 상..
-
[iOS] Dynamic Font프로그래밍/iOS 2021. 2. 10. 15:00
1. 사진 위에 폰트가 정해진 비율에 맞춰서 배치가 되어야 할 때 1. 이미지뷰의 Aspect Ratio 속성에 체크 후 이미지 비율대로 입력 2. 이미지뷰와 레이블을 뷰로 감싸기 3. 레이블을 사진의 top, bottom에 정렬 4. 레이블의 bottom 쪽 constraint의 multiplier를 수정하여 적절한 위치에 배치 비율을 먹일 때 사진과 레이블을 동시 클릭후 설정해도 슈퍼뷰에 대한 크기로 비율이 먹게 됨. 그래서 뷰로 한번 더 감싸고 그 뷰의 크기를 조절한 후에 비율을 먹이는 방식으로 조절함 2. AutoShrink 설정할 때 1. 먼저 가장 큰 디바이스로 놓고 폰트 크기를 설정한다. 최소 폰트 사이즈 설정 / 현재 폰트에서 어느정도까지 축소 가능 과 같이, 현재 폰트에서 작아지는 방향에..