본문 바로가기
728x90

전체 글139

[Swift] Collection Type - 집합(Set), 집합 연산, 반복, 정렬 안녕하세요! 이번 포스팅은 Swift 데이터구조와 알고리즘 책의 2장 스터디 중 두번째 핵심 내용인 Collection Type 에 대한 내용입니다. Array (배열), Dictionary (딕셔너리, 사전형), Set (집합), Tuple(튜플) 네가지 타입에 대해 학습했습니다. 🍡 집합(Set) Set 은 서로 중복되지 않고, nil 이 포함되지 않은 순서가 없는 컬렉션입니다. Set 는 수학에서의 집합의 개념을 기반으로 만든 데이터 타입이라고 합니다. Set 의 데이터는 Dictionary의 Key 와 마찬가지로 Hashable 프로토콜을 부합해야 합니다! 기본 데이터 타입 외에 커스텀 타입도 지정할 수 있지만, 이 경우 Hashable 프로토콜을 부합하도록 만들어야 합니다. Set 은 배열보다 .. 2021. 5. 31.
[Swift] Collection Type - 딕셔너리(Dictionary), 반복문, key/value 기반 정렬 안녕하세요! 이번 포스팅은 Swift 데이터구조와 알고리즘 책의 2장 스터디 중 두번째 핵심 내용인 Collection Type 에 대한 내용입니다. Array (배열), Dictionary (딕셔너리, 사전형), Set (세트), Tuple(튜플) 네가지 타입에 대해 학습했습니다. 📖 딕셔너리(Dictionary; 사전형) 딕셔너리는 동일한 데이터 타입이 Key: Value 쌍으로 묶인 순서가 없는 컬렉션(Unordered Collection)입니다. Value 는 실제로 담고 있는 값, Key 는 해당 값의 이름표(식별자, Identifier)와 같은 역할을 합니다. Key 를 통해 Value 를 가져오는 것이지요! 딕셔너리의 데이터 구조는 이름에서도 나타나듯이 사전과 유사한 데이터 타입인데요. 사전.. 2021. 5. 31.
[알고리즘/Swift] BOJ 4803 트리 :: 그래프, DFS + Python 💡 풀이 방법 연결된 노드를 저장할 2차원 배열 graph, 방문처리를 위한 1차원 배열 visited 이 필요하다. DFS 를 통해 트리가 아닌지를 확인하고 트리의 개수를 세는데, 노드 전체를 방문할 수 있도록 방문하지 않은 노드에 대해 DFS 를 수행한다. 👀 DFS 과정에서 트리가 아닌지 확인하는 방법은 ?! 문제에서 주어진 "트리는 사이클이 없는 연결 요소이다." 를 통해,, 트리를 탐색하는데 사이클이 생긴다면, 트리가 아닌 것임을 체크한다. graph 배열에서는 연결된 노드를 전체 저장하므로, 이전에 방문한 노드를 사이클로 인식할 수 도 있다. 이를 방지하기 위해 다음 노드와 이전 노드가 같은지 확인하는 작업을 추가한다. (이전 노드 == 다음 노드) 는 이미 지나온 길이므로 DFS 를 수행하지.. 2021. 5. 30.
[Swift] Collection Type - 배열 (Array), ArraySlice, CoW 안녕하세요! 이번 포스팅은 Swift 데이터구조와 알고리즘 책의 2장 스터디 중 두번째 핵심 내용인 Collection Type 에 대한 내용입니다. Array (배열), Dictionary (딕셔너리, 사전형), Set (세트), Tuple(튜플) 네가지 타입에 대해 학습했습니다. 👀 컬렉션 타입(Collection Type) 컬렉션 타입은 여러 값을 저장할 수 있는 형태로, Swift 에 구현된 컬렉션 타입은 Array, Dictionary, Set 가 있습니다. Tuple 은 컬렉션 타입은 아니지만, 유사한 방식으로 활용됩니다! 배열(Array) : 순서를 가지며, 동일 타입의 값을 목록으로 저장하는 컬렉션 딕셔너리(Dictionary; 사전형) : 동일한 데이터 타입이 Key: Value 쌍으로 .. 2021. 5. 28.
[Swift] Swift 에서 구조체와 클래스의 차이 구조체와 클래스는 데이터를 용도에 맞게 묶어서 표현할 때 사용됩니다. Swift 에서는 구조체와 클래스의 문법이 유사하고, property 와 method 를 지닐 수 있습니다. 둘의 큰 차이는 구조체는 Value type (값을 복사하는 형태), 클래스는 Reference type (객체를 공유하는 형태) 입니다. 또한, 클래스는 상속이 가능하지만 구조체는 상속이 불가능합니다. 중요한 핵심은 Swift 표준 라이브러리에 정의된 타입의 대부분은 구조체라는 점입니다 ! 👀 Swift 의 구조체가 C 기반 언어의 구조체와 다른 점은? C 기반 언어의 구조체와 기본적인 기능은 비슷하지만, 클래스의 몇 가지 기능을 추가해 오히려 클래스에 가까운 기능을 한다. 자동으로 생성되는 멤버 초기화 함수 외에 커스텀 초기.. 2021. 5. 28.
[Swift] 스터디 2주차 - 스위프트 데이터 구조와 알고리즘 4/27 진행했던 스위프트 데이터 구조와 알고리즘 책의 2장 '스위프트 기본 데이터 구조의 활용' 스터디 정리입니다! 매주 스터디를 진행하면서 내용 공유와 예제는 학습했지만 포스팅이 밀리게 되었네요 .. 😅 👀 2장 요약 2장에서는 Swift 의 표준 라이브러리를 기반으로 데이터 구조를 설명하고 있습니다. 크게는 다음 주제로 나뉩니다! 각각 정리한 포스팅 링크를 남겨둘게요~ Swift 의 구조체 vs 클래스, Swift 표준 라이브러리에 정의된 타입 대부분은 왜 구조체일까? 배열, 딕셔너리, 세트, 튜플의 개념과 초기화, 활용 문법 Protocol 지향 프로그래밍에 대해 👉 컬렉션 타입(Collection Type) 컬렉션 타입은 여러 값을 저장할 수 있는 형태로, Swift 에 구현된 컬렉션 타입은 A.. 2021. 5. 28.
[알고리즘/Swift] BOJ 1743 음식물 피하기 :: 그래프, DFS/BFS Swift 로 풀어보는 그래프 문제입니다! 이번주에 Swift 스터디에서 그래프를 나가는데, 알고리즘 스터디에서도 그래프 문제풀이가 주제이네요 😀 개념과 문제를 동시에 접하니까 좋아요! 1743번: 음식물 피하기 첫째 줄에 통로의 세로 길이 N(1 ≤ N ≤ 100)과 가로 길이 M(1 ≤ M ≤ 100) 그리고 음식물 쓰레기의 개수 K(1 ≤ K ≤ 10,000)이 주어진다. 그리고 다음 K개의 줄에 음식물이 떨어진 좌표 (r, c)가 주어진 www.acmicpc.net 👀 풀이 방법 입력으로 주어지는 좌표를 가지고 그래프(2차원 배열의 맵)을 만들 수 있어요! 좌표 (r, c) 는 2차원 배열에서 arr[r-1][c-1] 과 같이 접근할 수 있습니다. (문제가 좀 특이한데..) 통로에 떨어진 음식물 .. 2021. 5. 27.
[알고리즘/Swift] BOJ 14725 개미굴 :: 문자열, 트라이 트리 (Trie Tree) 알고리즘 스터디 지난주 주제는 "문자열" 이었습니다. 트라이 트리를 활용한 문제가 인상적이었고, 많이 활용되는 알고리즘이라고 합니다. 이번주 Swift 알고리즘 책에서도 트리 중, 트라이 트리를 공부해서 정리해보려고 합니다! 14725번: 개미굴 첫 번째 줄은 로봇 개미가 각 층을 따라 내려오면서 알게 된 먹이의 정보 개수 N개가 주어진다. (1 ≤ N ≤ 1000) 두 번째 줄부터 N+1 번째 줄까지, 각 줄의 시작은 로봇 개미 한마리가 보내준 먹이 www.acmicpc.net 👀 풀이 방법 이 문제에서는 아래 그림으로 힌트를 줬어요. 처음 문제를 봤을 땐 트라이 트리를 모르는 상태였지만, 아.. 뭔가 트리구조를 활용해야하는 구나를 알게 되었죠! 그래서 찾아보니, 트라이 트리를 활용해서 푸는 문제라는 .. 2021. 5. 26.
[iOS/Swift] 개발환경 Debug/Release 구분하기 + Firebase Crashlytics 설정 안녕하세요! iOS 앱의 개발을 완료한 후, 앱 스토어에 런칭하기 전에 Debug / Release 환경을 구분해서 개발서버와 실서버 각각 테스트 후 배포를 했습니다. API 서버와 Firebase (Auth, Storage, Crashlytics) 를 연동했기 때문에, 좀 더 복잡해서 고생했던 기억이 나네요 😅 Debug 환경 (Dev) - 개발용 서버, DB, Firebase 프로젝트 Release 환경 (Production) - 실제 서비스용 서버, DB, Firebase 프로젝트 아래 내용들에 따라 Xcode 에서 개발 환경을 구분했습니다. 1. 개발 서버, 실 서버 URL 구분하기 2. 두 개의 Firebase 프로젝트를 DEBUG/RELASE 에 따라 구분하기 3. Firebase 프로젝트 U.. 2021. 5. 23.
728x90