분류 전체보기 223

[Swift] 프로그래머스 - [1차] 비밀지도

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 내 풀이- 엄청 문제 그대로 날것으로 풀었다.. 허허func solution(_ n:Int, _ arr1:[Int], _ arr2:[Int]) -> [String] { var arr1 = arr1.map { String($0, radix: 2)} //2진수로 변환 var arr2 = arr2.map { String($0, radix: 2)} var answer: [Str..

[RxSwift, RxCocoa] 주요 Operator 특징 및 차이점 정리 (계속 업데이트 예정)

혹시 틀린 부분이 있다면 지적해주시면 감사하겠습니다 :) 1. map vs flatMap vs compactMap https://limjs-dev.tistory.com/139 https://huniroom.tistory.com/entry/RxSwift-Transforming-Operator-toArray-map-compactMap 공통점 : 모두 Observable을 특정 로직을 적용하여 데이터를 바꾼다. 차이점 : - map은 변환 아이템을 Observable로 바꿔 return해주고, - flatMap은 단순히 Observable로 바꾸는게 아니라 평평하게 하나의 Observable로 바꿔준다. 예를들어 map은 Observable 이렇게 return 해주지만 flatMap은 Observable 이렇..

[RxSwift] Disposable, Dispose, DisposeBag

Disposable, Dispose RxSwift에서, 옵저버는 subscribe를 통해 이벤트를 전달받아서 처리하게 되는데, subscribe는 이후에 Disposable 을 반환한다. 또한 Disposable에는 'Dispose resource' 할 수 있는 dispose() 메소드가 제공된다. dispose의 원래 뜻은 '처분하다' 로, 이를 통해 유추해보면 이벤트에 대한 처리를 마치고 더이상 처리하지 않으니 구독을 해제해라! 라는 의미인 것으로 보인다. 정리하자면 subscribe의 반환값으로 Disposable 이 반환되고, 이벤트 처리가 끝나면 해당 구독을 유지할 필요가 없으니 구독을 해제해주는 과정이 dispose() 라고 할 수 있다. dispose를 꼭 해주어야만 하는 이유는, 구독이 끝..

[자료구조/Swift] 덱(Dequeue)

Swift로 직접 자료구조 구현하기 - 덱 ✅ 간단하게 알아보는 덱 - 스택과 큐의 연산을 모두 가지고 있는 자료구조이다. - 앞, 뒤에서 삽입, 삭제 모두 가능한 자료구조 1) 뼈대 잡기 (더블 스택을 사용한 큐와 동일) struct Dequeue { var input = [T]() var output = [T]() var isEmpty : Bool { return input.isEmpty && output.isEmpty } var size: Int { return input.count + output.count } var first: T? { if isEmpty { return nil } return output.isEmpty ? input.first! : output.last! } var last:..

[자료구조/Swift] 큐(Queue)

Swift로 직접 자료구조 구현하기 - 큐 ✅ 간단하게 알아보는 큐 - 가장 먼저 넣은 데이터를 가장 먼저 꺼낼 수 있는 구조로, FIFO(First-In, First-Out), 선입선출 구조 이다. - 마치 음식점에서 줄섰을 때, 먼저 줄 선 사람부터 식당에 들어가는 것과 같다 - 메소드는 enqueue() : 큐에 데이터를 넣기 / dequeue() : 큐에 데이터를 꺼내기 가 있다. 1) 뼈대 잡기 struct Queue { var elements:[T] = [] var isEmpty: Bool { return elements.isEmpty } var size: Int { return elements.count } } 2) 메소드 추가 - enqueue(), dequeue() mutating fun..

[Swift] 함수

본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의를 통해 공부하며 정리하는 포스팅입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 0. 함수를 사용하는 이유 반복되는 동작을 단순화하여 코드 재사용 코드를 논리적 단위로 구분하여 모듈화 코드길이가 긴 것을 단순화 1. 함수 - Swift에서 함수는 일급 객체이다. (그 자체로 반환 값, 인자로 사용 가능) func 함수 이름(매개변수1: 자료형, 매개변수 2: 자료형...) -> 반환타입 { 실행 구문 return 반환값 } - 매개변수 = 파라미터 = 인자 : 함수의 정의에서 입력값으로 사용되는 변수 - 인수 = 아규먼트 : 함수의 호출에 사용되는 ..

🐦 Swift 2023.03.15

[자료구조/Swift] 스택 (Stack)

Swift로 직접 자료구조 구현하기 - 스택 스택 개념 설명과 C 언어 코드는? 여기를 참고해주세요! 혹시 틀린 부분이 있다면 지적해주시면 감사하겠습니다! 1) 뼈대잡기 - 스택에 담길 요소를 담은 배열 elements - count는 스택의 크기로, 배열의 크기이며 isEmpty는 스택이 비어있는지 확인하는 변수로, pop 연산이나 peek 연산 수행 시 쓰인다. struct Stack { var elements: [T] = [] //제너릭으로 배열 생성 var count : Int { return elements.count } var isEmpty : Bool { return elements.isEmpty } } 2) 관련함수 - 스택에는 데이터를 추가하는 push(), 데이터를 꺼내오는 pop() ..

[Swift] 흐름제어

본 포스팅은 '스위프트 프로그래밍 (3판) - 야곰 저' 도서와 앨런 Swift 문법 마스터스쿨 강의를 공부하며 정리하는 포스팅입니다. 혹시 틀린 부분이 있거나 질문이 있으시다면 언제든지 댓글 달아주시면 정말 감사하겠습니다 :) 1. switch 구문 - break 키워드 사용은 선택 사항이나, 케이스에서 실행하려는 코드가 없을 때 break 문을 반드시 사용해야함 - 입력값은 정수/부동소수 뿐만 아니라 문자, 문자열, 열거형, 튜플, 범위 등 대부분의 타입에 사용할 수 있음 - 케이스를 콤마로 연결 가능하며, switch 문에서는 또는(or)의 의미 1) 기본 switch 문 //1. 기본 switch 문 switch 입력값 { case 비교값 1: 실행구문 //break는 선택사항 case 비교값 ..

🐦 Swift 2023.03.14

[iOS/GCD] 2. GCD의 개념 및 종류

Swift로 동시성 프로그래밍을 구현하는 방법은 GCD, Operaion, async/await이 있다. 여기서는 GCD, DispatchQueue에 대해 알아보도록 하겠다. (혹시 틀린 정보가 있으면 댓글로 알려주시면 감사하겠습니다!) Dispatch(=GCD)란? *공식문서 링크: https://developer.apple.com/documentation/dispatch - 멀티코어 하드웨어에서 코드가 동시에 실행되도록 자동으로! iOS에서 관리해주는 시스템 - GCD는 응용 프로그램 각각을 자동으로 효율적으로 자원을 사용하도록 분배해준다. DispatchQueue란? *공식문서 링크 : https://developer.apple.com/documentation/dispatch/dispatchqueu..

🍎 iOS/GCD 2023.03.10

[iOS/GCD] 1. 코어/스레드/프로세스, 직렬/병렬/동시, 동기/비동기

코어와 스레드, 프로세스 용어 정리 코어 : CPU의 핵심으로 CPU에서 실제로 일을 처리하는 본체 - 코어가 많다 = 작업을 처리해줄 친구가 많다. (알바생이 많다) - 코어는 한 번에 한 가지 일만 처리할 수 있음. 그러나 실제로는 싱글 코어를 가진 컴퓨터라도 음악을 들으며 문서를 작성하는 등 여러 작업을 동시에 처리할 수 있다. - 햄버거집에 알바생이 1명 있다고 가정해보면 (싱글코어), 치킨 햄버거, 불고기 햄버거, 치즈 햄버거를 동시에 만들고 있음을 볼 수 있다. 하지만 이것은 한 번에 만드는 것처럼 보이는 것이지, 사실은 일을 짧은 단위로 나누어서 하나씩 번갈아가면서 요리를 하는 것임 (이걸 운영체제 용어로 시분할! 이라고 함) - 각 햄버거의 빵을 올리고, 불고기를 굽고, 치즈를 올리고 ....

🍎 iOS/GCD 2023.03.10
반응형