일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- OS
- 부트캠프
- rxswift
- Hello
- 디자인패턴
- IOS
- 개발
- 알고리즘
- World
- Swift
- 네이버 부캠
- 단위 테스트
- 후기
- development
- boostcamp
- SwiftUI
- Design Pattern
- WWDC
- 부스트캠프
- Tistory
- 커스텀 뷰
- Algorithm
- Cocoa Internals
- Opensource
- 코코아 인터널스
- notion
- Today
- Total
목록분류 전체보기 (47)
꿈돌이랜드
그래프 최단 경로 찾기 문제 유형PS에서 최단 경로 문제는 다음과 같은 종류로 나눌 수 있다.단일 출발 - 단일 도착 최단 경로그래프 내 특정 노드 A에서 출발해서, 다른 특정 노드 B에 도착하는 가장 짧은 경로를 찾는 문제위와 같은 가중치 그래프가 주어졌을 때, A-F 간 최단 경로를 찾는 경우가 이에 해당한다.단일 출발 최단 경로그래프 내 특정 노드 A에서 출발해서, 그래프에 존재하는 모든 노드들에 대한 가장 짧은 경로를 찾는 문제그래프 내 가중치들이 음수가 아닌 경우에 다익스트라 알고리즘을 사용한다전체 쌍(all pair) 최단 경로그래프 내 모든 노드 쌍들에 대한 최단 경로를 찾는 문제플로이드 와샬 등의 알고리즘을 사용 다익스트라 알고리즘시작 노드를 기준으로 하여 연결되어 있는 노드들을 추가하며 ..
씨밋을 개발하면서 가장 애먹은 부분 중 하나는 약속 신청 화면들이었다.언뜻? 보면 별거 아닌 화면 같다. 그냥 UISearchBar 이용하고, UITextField, UITextView 이용해서 입력창을 구현하고 각 입력창에 모든 값이 입력되어 있으면 다음 버튼을 활성화 시키고 색을 변환시키면 될테니까.하지만 저 상단의 검색창을 구현하는 일이 만만치 않았다....위처럼, 입력 도중에 연관 검색어 기능 처럼 본인의 친구 목록에서 지금까지 입력한 글자에 매치되는 친구목록을 보여줘야 하며, 그중 하나를 선택할 경우 칩셋(토큰)의 형태로 검색창에 박혀야 했다. 그리고 칩셋의 X는 버튼으로 작동해서, 누를 경우 해당 이름은 삭제되어야 한다.처음엔 위 검색창을 어떤식으로 구현할 지에 대해 팀원들과 논의가 많았었다...
Swift로 우선순위 큐를 구현하려면 직접 힙을 구현해야한다. 여기 Swift로 구현한 힙이 있습니다. 찾은 자료중 가장 깔끔한것 같아요.final class Heap { private var nodes: [T] = [] private let sort: (T, T) -> Bool init(sort: @escaping ((T, T) -> Bool)) { self.sort = sort } var isEmpty: Bool { nodes.isEmpty } func insert(_ data: T) { var index = nodes.count nodes.append(data) while index >= 0, sort(nodes[index], nodes[(index-1) / 2]) { nodes.swapAt(ind..
플로이드 와샬 그래프 문제에서 자주 출제되는 문제 유형. 그래프 유형에서 크루스칼과 플로이드 와샬이 대표적인 그리디 알고리즘 크루스칼 → 최소 간선을 싸이클 없이 더해가면서 최소 비용을 찾는과정 (한 정점에서 다른 정점으로 가는 최단거리) 플로이드 와샬 → 현재 노드의 최솟값을 지정할 때 현재 값과 다른 경로로 왔을 때의 최솟값을 비교해서 대입하는 방식 (모든 정점에서 다른 정점으로 가는 최단거리) 이런 그래프에서 1에서 5까지 가는 경우를 생각해보면 1-2-3-5 : 5코스트 1-2-5: 3코스트 플로이드 와샬은 이런 경우에 유용함! 코드 형태 func floydWarshall() { for i in 0..
29기 SOPT 앱잼을 통해 개발했던 SeeMeet에 대한 후기를 이제서야 올린다. 개발은 올해 1월부터 했지만, 본인의 삽질에 대해 오랜 시간이 지나며 사이드 프로젝트화 되어 오랜 기간이 소요되었다 ㅠ개발을 하면서 어려운 점에 대해 정리하여 앞으로 서술하고자 한다.화면 전환의 분리 (코디네이터 패턴의 적용)본래 본 프로젝트는 MVC 아키텍처로 시작되었다. (정확하게는 Apple MVC)Apple MVC 아키텍처는 ViewController가 데이터 가공과 뷰의 역할을 모두 짊어지는 아키텍처로 Massive View Controller의 문제가 발생한다.그래서 엄청난 길이의 ViewController가 발생하기도 했다.엄청난 수의 ViewController...결정적으로 코디네이터 패턴을 도입하기로 마음..
이 텍스트를 누르면 1번 블록으로 이동합니다.이 텍스트를 누르면 2번 블록으로 이동합니다.이 텍스트를 누르면 3번 블록으로 이동합니다.1. 1번 블록2. 2번 블록3. 3번 블록1. 1번 블록print("Hello World!")2. 2번 블록print("Thank you N2T!")3. 3번 블록print("Hello World!") Uploaded by N2T
헤더1헤더2헤더3 점리스트1점리스트2점리스트3 cascaded list리스트1리스트a리스트b숫자숫자숫자숫자숫자 체크 체크 체크 숫자리스트1숫자리스트2숫자리스트3 체크리스트1 체크리스트2 체크리스트3 토글열기토글내용 인용문구입니다. 구분선입니다. 콜아웃📌콜아웃1🎒콜아웃2 여러줄인 경우는 이렇게 나옵니다. 공식E=mc2E=mc^2E=mc2테이블colcol2row1val1row2val2 Lorem Ipsum (굵기, italic, 컬러, 백그라운드 컬러, 코드조각)대법원에 대법관을 둔다. 다만, 법률이 정하는 바에 의하여 대법관이 아닌 법관을 둘 수 있다. 국가는 대외무역을 육성하며, 이를 규제·조정할 수 있다. 모든 국민은 언론·출판의 자유와 집회·결사의 자유를 가진다. 대통령은 헌법과 법률이 정하는 바에..