전체 글 159

[Swift] 프로그래머스 / 코딩테스트 입문 - 합성수 찾기

문제 내 풀이 func solution(_ n:Int) -> Int { var count = 0 var answer = 0 for i in 1...n {//1부터 10까지 for j in 1...i{ if i%j == 0{ count += 1 } } if count >= 3 { answer += 1 } count = 0 } return answer } 고차함수 활용 풀이 return (1...n).filter { i in (1...i).filter { i % $0 == 0 }.count >= 3 }.count 1) (1...n).filter : 1부터 n까지의 range에서 다음과 같은 조건으로 필터링하겠다. 2) i in (1...i).filter { i % $0 == 0 : 1부터 n까지 반복해서, ..

[Swift] 코딩테스트에 필요한 문법 총정리

문자열/컬렉션 문자열/배열 ✅ 배열 초기화 https://developer.apple.com/documentation/swift/array // Shortened forms are preferred var emptyDoubles: [Double] = [] var emptyDoubles = Array() var emptyDoubles = [Double]() // The full type name is also allowed var emptyFloats: Array = Array() var numbers = [1, 2, 3, 4 ,5] var answer = Array(numbers[1...3]) print(answer) // Prints "[2, 3, 4]" var ex_4 = Array(1...10) /..

[Swift/Python] 코테 준비에 알아두면 좋을 사항 / 코드

Swift, Python 둘다 준비해서 코드가 섞여있습니다. Swift ✅ 시간초과가 발생할 경우, 아래를 살펴보자. 1) 고차함수를 많이 사용하지는 않았는가? 반복문 안에 고차함수가 들어가있지는 않은가? 2) 배열 대신 튜플을 사용할 수 있는가? 3) 수의 범위가 큰데 반복문을 2-3개씩 돌린다거나 하지는 않는가? -> 시간복잡도 확인 4) 백준이고, 위 문제 모두 아니고 알고리즘이 맞는것 같은데 시간초과가 난다..? 하면 백준 특유의 시간초과 문제일 수 있음. - 이럴땐 FileIO 클래스를 사용하자. (라이노님 FileIO 클래스 외에도 더 빠른 FileIO가 있다고 함) -> 하지만 백준에서만 해당 파일을 사용할 일이 있고 코딩테스트에서는 쓸일이 없어서 .. 그냥 파이썬 코드 그대로 옮겨보고 맞는..

[iOS/Swift] FSCalendar로 캘린더 구현하기

🔥 목표는 위 캘린더를 구현하는것! - 저는 Snapkit으로 구현하였습니다. 1. FSCalendar 뷰 생성 및 delegate, datasource 선언 private var calendar = FSCalendar() //viewDidLoad() calendar.delegate = self calendar.dataSource = self 2. 달력 기본값 세팅 calendar.scope = .month //월 표시 calendar.locale = Locale(identifier: "ko_KR") //요일을 한글로 표시하기 위함 3. 헤더 - 기본 설정 calendar.appearance.headerDateFormat = "YYYY년 MM월" //헤더 포맷 calendar.appearance.head..

[iOS/Swift] UIScrollview 원리 / 코드로 구현하기 (UIScrollView Programatically/snapkit)

(사이드 프로젝트에서 스크롤뷰로 삽질을 정말 많이해서 정리해보는 포스트....😠) 스크롤뷰 구현의 핵심을 정리해보면 다음과 같습니다. 1. contentView의 constraint는 scrollView 사면에 맞추기 (top, leading, trailing, bottom -> equal to scrollView) 2. view에 scrollView를 추가하고, scrollView에 contentView 추가 및 contentView에 뷰를 구성하는 요소들을 추가한다. 3. 세로 스크롤뷰의 경우 contentView의 width는 scrollView의 width와 동일하게, 가로 스크롤뷰의 경우 contentView의 height을 scrollView의 height과 동일하게 맞춘다. 4. conten..

[iOS/Swift] 사이드프로젝트 버그 정리

1. 처음 회원가입 후 진입시에 API가 동작하지 않는 현상 - 원인 : API에 사용되는 헤더(jwt값)가 'static' 즉 정적변수이기때문에 프로그램 처음 실행할 때 한 번 값이 할당된 이후에는 값이 바뀌지 않음 reference : https://wikidocs.net/228 07-03 정적(static) 변수와 메소드 이번에는 스태틱(static)에 대해서 알아보자. [TOC] ## static 변수 예를 들어 다음과 같은 HouseLee 클래스가 있다고 하자. *Sample. ... wikidocs.net - 해결 : 앱 실행 후에 회원탈퇴 후 재가입 혹은 기타 계정으로 로그인하는 경우까지 고려해야하므로 정적이 아닌 동적 변수로 선언 후 동적으로 값 할당 2. 텍스트필드가 키보드에 의해 가려지..

[iOS/Swift] Tableview/Collectionview 페이징 (Pagination)

1) UIScrollViewDelegate - TableView, CollectionView에는 스크롤이 내장되어있으므로 UIScrollViewDelegate 이용이 가능하다. 현재 테이블뷰/스크롤뷰가 있는 UIViewController에 UIScrollViewDelegate를 상속한다. 2) 필요 변수 - arraylist : 무한스크롤하여 불러올 데이터를 담을 array list 준비 -> 초기에는 빈 리스트 - pageNum : API의 pageNumber 변수 - fetchingMore : 더 스크롤하여 데이터를 불러올지에 대한 boolean 변수 -> 초기에는 true 값 3) scrollViewDidScroll 함수 그 다음, scrollViewDidScroll 함수에서 스크롤이 끝까지 닿았는..

[Android] MVVM + Coroutine + Retrofit

MVVM + Retrofit + Repository의 전체적 구조 MVVM은 뷰 관련 로직이 ViewModel에 종속되는 패턴이다. 즉 UI 관련 데이터가 ViewModel에 있고 뷰는 이 뷰모델을 관찰(observing)하면서 변화하는 내용들을 업데이트한다. ViewModel은 뷰에 사용되는 데이터를 요청하면, Repository는 Room (내부 Database) 혹은 Retrofit이 네트워크를 통해 통신한 내용을 ViewModel에 전달해주는 방식이다. 그래서 이 내용을 Retrofit을 통해 API 통신하는 부분에 적용하면 다음 절차로 진행된다! 1. 레트로핏 인터페이스를 생성하고, API를 통신한 결과를 response 모델로 반환하도록 해둔다. 2. 해당 인터페이스를 통해 데이터를 가져오는 ..

Android 2021.11.03

[Android] Reactive Programming, Rxjava/Rxkotlin/RxAndroid이란?

Reactive Programming이란? 주변환경과 끊임없이 상호작용하면서, 환경이 변하면 이벤트를 받아 동작하는 프로그래밍 Q. 왜 사용하는가? → 비동기 프로그래밍이랑 밀접한 관련이 있음 메인스레드에서 데이터를 불러온다거나, 서버와 통신한다거나 등의 무거운 작업은 별도의 스레드로 분리하여 실행해야함. 즉 처리가 다 될때까지 기다리는것이 아닌 비동기 작업을 해주어야함 AsyncTask로도 가능하지 않은가? → AsyncTask는 공식적으로 deprecated됨. Q. 명령형 프로그래밍과 어떻게 다른가? 명령형 프로그래밍은 코드가 작성된 순서대로 실행됟는거고 리액티브 프로그래밍은, 데이터의 흐름을 먼저 정의하고 데이터가 변경되었을때 연관되는 함수나 메소드가 그때그때 업데이트되는 방식 따라서 손쉬운 비동..

Android 2021.10.19
반응형