본문 바로가기
반응형

Apple30

[Swift] 소수점 제거하기 (반올림, 올림, 내림, 버림 등) PS를 하다 보면 반올림, 올림, 내림, 버림 등 소수점을 제거해서 출력해야 할 때가 종종 있다. 찾아보다가 이 모든 것을 전부 할 수 있는 만능 메소드를 찾았다! FloatingPoint 프로토콜에 정의된 round(_:)라는 메소드이다. 기본 자료형인 Float과 Double 모두 FloatingPoint 프로토콜을 채택하고 있기 때문에 round 메소드 사용이 가능하다. mutating func round(_ rule: FloatingPointRoundingRule) 형태는 mutating func round(_ rule: FloatingPointRoundingRule). 제거한 결과값을 리턴하는 게 아니라 mutating func이기 때문에 인스턴스 값 자체가 바뀐다. 따라서 immutable 한.. 2022. 1. 13.
[Swift] 배열 정렬하기 알고리즘 문제를 풀다 보면 정렬이 되게 자주 필요한데, 매번 직접 구현하기는 번거롭다. Array에는 이미 O(NlogN)의 sort 메소드가 구현되어 있으니 이걸 쓰자. Array 공식문서로 가보면, 정렬 관련 메소드는 4개를 제공한다. 하나씩 자세히 살펴볼 건데, 일단 사용법만 빠르게 요약 먼저! 다시 공식 문서로 돌아와서, 4개의 정렬 메소드를 살펴보자. 두 가지 기준으로 둘둘씩 나눌 수 있는데 원본 배열 자체를 변경하느냐에 따라 원본 자체를 변경 : sort(), sort(by:) 원본은 두고 정렬된 새 배열을 리턴 : sorted(), sorted(by:) 정렬 기준을 어떤 방법으로 정의해주냐에 따라 Comparable 프로토콜 채택 : sort(), sorted() (Element, Eleme.. 2022. 1. 13.
[iOS] Timer(타이머)와 Thread(스레드), RunLoop(런루프) ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 최근 프로젝트에서 반복 타이머가 필요한 경우가 있었는데, 그때 알아보았던 타이머, 스레드, 런루프에 대해 까먹기 전에 정리하려고 한다. Timer 찾아본 바로는 애플이 제공하는 반복 타이머는 두 종류가 있는데, Timer와 DispatchSourceTimer이다. Timer는 굉장히 오래됐고, DispatchSourceTimer는 비교적 최근에 나왔다고 한다. 이 중 내가 사용했던 것은 Timer 클래스이다. 애플 공식 문서에서는 Overview부터 "타이머는 런루프와 함께 작동한다. 타이머를 효과적으로 사용하려면 런 루프가 어떻게 작동하는지 알아야 한다. 스레딩 프로그래밍 가이드를 참조해라."라고 나와있다. 그래서 링크 걸려있는 "Thr.. 2022. 1. 10.
[Swift] 특정 값으로 초기화 된 특정 크기의 배열 생성하기 알고리즘 문제를 풀다 보면 전부 0으로 초기화된 크기 100짜리 배열 등 특정 값으로 초기화된 특정 크기의 배열을 만들어야 할 때가 많다. 이미 애플에서 이러한 용도의 Array Initializer를 제공하기 때문에 빈 배열에 0을 100번 추가하지 않아도 된다. repeating에는 반복할 값을, count에는 배열 크기를 적어주면 된다. var arr = Array(repeating: 0, count: 5) // [0, 0, 0, 0, 0] + 풀다보니 2차원 배열이 필요할 때도 많은 것 같아 추가한다. repeating value를 단일 값이 아닌 배열로 주면 된다. let twoByThreeMatrix = Array(repeating: Array(repeating: 0, count: 3), co.. 2022. 1. 6.
[Swift] 백준 스위프트로 풀기 - 프로젝트 생성, 입력 받는 법 iOS 공부를 시작한 뒤로 스위프트 외 다른 언어는 거의 다 까먹어버렸다😅 원래 PS 할 때는 C++을 써왔는데 지금 제일 편한 언어는 스위프트라 스위프트로 한번 해보려고 한다. 먼저 PS용 CLI 프로젝트부터 파주자. 이제 문제를 풀기 위해서는 주어진 입력을 받아야 한다. Swift에서 사용자 입력을 받는 함수는 readLine()이다. 함수 설명은 "Returns a string read from standard input through the end of the current line or until EOF is reached"라고 되어 있다. 함수 이름처럼 터미널에서는 한 줄(엔터 기준)을 읽어 들인다. func readLine(strippingNewline: Bool = true) -> Stri.. 2022. 1. 5.
반응형