profile
백과사전 보다 항해일지를 지향합니다. 부디 표류일지가 되지 않기를...
태그 목록
전체보기 (382)swift(274)백준(154)programmers(78)swiftui(62)iOS(36)DFS(28)DP(23)Jwords(18)stack(17)재귀함수(15)BFS(12)unit test(10)패치노트(9)브루탈포스(8)MVVM(8)rxswift(7)String(7)queue(7)Brutal Force(7)dictionary(7)foreach(6)MacOS(6)animation(6)protocol(6)nodejs(5)refactoring(5)greedy(5)Xcode(5)Firebase(5)Hash Table(4)완전탐색(4)이진탐색(4)구현(4)combination(4)reactivex(4)TextField(4)work(4)binding(4)test(4)heap(4)파라메트릭서치(3)Picker(3)State(3)expressjs(3)model(3)Date(3)Deque(3)TabView(3)parametric search(3)NavigationView(3)db(3)debug(3)(2)TapGesture(2)animate()(2)반응형 프로그래밍(2)이진법(2)quick(2)mysql(2)Core Data(2)(2)firestore(2)Environment Object(2)error(2)Combine(2)알고리즘(2)recursive function(2)이차원배열(2)Codable(2)dependency injection(2)kingfisher(2)@FocusState(2)lazy var(2)학교(2)text(2)back tracking(2)dynamic programming(2)associatedtype(2)List(2)restful api(2)gesture(2)set(2)그리디(2)순열(2)KeyboardShortcut(2)자료구조(2)operator(2)recursive(1)이분탐색(1)공간복잡도(1)UISegmentControl(1)undefined symbol(1)matrix(1)top down(1)조합(1)Identifiable(1)timeIntervalSince1970(1)Ventura(1)pagination(1)UIImage(1)NSImage(1)observable(1)offset(1)에라토스테네스의 체(1)SOME(1)Operators(1)DateComponents(1)Opaque Type(1)switch(1)오큰수(1)CGAffineTransform(1)URLSession(1)Formatter(1)textEditor(1)JPEG(1)UICollectionView(1)iOSTest(1)filter(1)simultaneousGesture(1)scenePhase(1)two pointer(1)UIDevice(1)RIBs(1)build(1)file descriptor(1)NSPasteBoard(1)tree(1)homebrew(1)UIImagePickerController(1)contentShape(1)AffineTransfromation(1)iOS 16(1)CFStringTokenizer(1)minimumScaleFactor(1)asset(1)소수(1)alert(1)presentationMode(1)Design Pattern(1)Observable Object(1)Floyd-washall(1)@ObservedObject(1)font(1)dependency(1)이스케이프문자(1)onReceive(1)SecureField(1)dismiss(1)정렬(1)UITableView(1)split()(1)GCD(1)백트래킹(1)알람(1)단축키(1)array(1)onAppear(1)dict(1)ArraySlice(1)initializer(1)verbatim(1)github(1).sheet(1)random(1)Kruskal Algorithm(1)이항 계수(1)UIViewControllerRepresentable(1)computed property(1)sorted(1)allowsHitTesting(1)iOS 15(1)applicationDidFinishLaunching(1)사이드바(1)최소공배수(1)truncated(1)디자인 패턴(1)UIResponder(1)NotificationCenter(1)Standard Input(1)Nimble(1)동시성(1)prefix(1)Stroke(1)동적계획법(1)CFString(1)alignment(1)calendar(1)Arithmatic Overflow(1)drag(1)resignFirstResponder(1)tip(1).gitignore(1)retain cycle(1)Singleton(1)modal(1)위상 정렬 알고리즘(1)redaction(1)SubView(1)비밀번호(1)prefetch(1)git(1)permutation(1)Mocking(1)디자인패턴(1)gradient(1)radix(1)onSheet(1)@Deprecated(1)스위프트(1)회고(1)GestureState(1)component(1)후위표기식(1)파라메트릭 서치(1)datepicker(1)음악(1)쓰레드(1)전처리문(1)택시기하학(1)navigationbar(1)크루스칼 알고리즘(1)onTapGesture(1)Type Property(1)UNUserNotificationCenter(1)아핀변환(1)Subject(1)fixedSize(1)ReactorKit(1)Graph(1)아스키코드(1)비동기프로그래밍(1)피보나치 수열(1)http(1)UIAlertController(1)무한스크롤(1)최대공약수(1)Relay(1)선언형 프로그래밍(1)플로이드-와샬(1)inline function(1)VStack(1)AVPlayer(1)함수형 프로그래밍(1)memoization(1)메모이제이션(1)애니메이션(1)dashPhase(1)color(1)replacingOccurrences(1)Lazy Loading View(1)시간복잡도(1)delegate pattern(1)alamofire(1)연산자(1)ARC(1)floyd-warshall(1)계획(1)MVC(1)빠른 입출력(1)행렬(1)

Text(verbatim:) @Work

최근에 새로운 프로젝트의 로그인 화면을 만들고 있는데요. 도중에 비밀번호 찾기 화면을 만들던 도중에 Text로 사용자의 이메일 주소를 보여주는 상황이 있었습니다. 위와 같은 형태로 Text를 화면에 띄우면 아래처럼 이메일 주소가 파란색 + 밑줄의 조합으로 표시됩니다.

어제
·
0개의 댓글
·

(Swift) Programmers 배달

코딩테스트 연습 - 배달 문제 풀이 아이디어 플로이드 와샬 알고리즘 문제를 풀기 위해서는 일단 1번 마을과 다른 마을 사이의 최단경로를 구해야 합니다. 1번 마을과 직접 연결된 도로 뿐만이 아니라 다른 마을을 건너서 가는 경로가 최단 경로가 될 수도 있습니다. 따

2일 전
·
0개의 댓글
·

Text가 Truncated되는 것 방지하기 @Work

절대로 Truncated 되면 안되는 Text를 truncated를 방지하는 방법입니다. 예시 코드 이번에 새로운 프로젝트의 이메일 입력 화면을 만들면서 겪은 일입니다. 이메일 입력 화면을 만들면서 title과 text field 사이에 email의 포맷에 대한 안

5일 전
·
0개의 댓글
·

(Swift) Programmers 두 큐 합 같게 만들기

코딩테스트 연습 - 두 큐 합 같게 만들기 문제 풀이 아이디어 그리디 알고리즘 문제의 목적은 두 “큐”의 합을 같게 하는 것입니다. 한 큐의 합이 다른 큐의 합과 다른 경우 두 큐의 차이를 줄일 수 있는 방법은 큰 큐에서 pop한 수를 작은 큐에 push하는 방법

6일 전
·
0개의 댓글
·

(Swift) Programmers 행렬 테두리 회전하기

코딩테스트 연습 - 행렬 테두리 회전하기 문제 풀이 아이디어 처음에 문제를 읽었을 때는 뭔가 규칙이 있을거라고 생각을 했는데요. 하지만 테두리를 회전이 다음 회전에 영향을 미치므로 규칙을 찾는 것이 불가능합니다. 따라서 직접 행렬을 이차원 배열로 구현하고 회전해서 답을 구해보도록 하겠습니다. 회전하는 코드는 조금 복잡해보이지만 결국에는 회전 방향에 따...

7일 전
·
0개의 댓글
·

(Swift) Programmers 스티커 모으기(2)

코딩테스트 연습 - 스티커 모으기(2) 문제풀이 아이디어 문제의 유형 자체는 DP에서 많이 본 문제입니다. i번째까지의 스티커를 떼었을 때의 최대값을 dp를 통해 0부터 구하고 마지막 스티커의 최댓값까지 구했을 때 그 값을 리턴하면 됩니다. i번째 스티커까지의 최댓

2023년 3월 15일
·
0개의 댓글
·

(Swift) Programmers 방금 그곡

코딩테스트 연습 - [3차] 방금그곡 문제 풀이 아이디어 복잡한 알고리즘이 필요한 문제는 아닙니다만 주어진 String을 파싱하여 필요한 정보를 추출하는 과정이 필요합니다. #을 어떻게 처리할 것인가? 일단 #을 어떻게 처리할 지 생각을 해봅시다. 일반적인 음계

2023년 3월 14일
·
0개의 댓글
·

(Swift) Programmers 수식 최대화

코딩테스트 연습 - 수식 최대화 문제 풀이 아이디어 문제를 보면 상당히 복잡한 것 같지만 단계를 쪼개서 보면 각각의 해결 방안은 생각보다 쉽습니다. 총 3파트로 나누어서 문제를 해결해보도록 하겠습니다. String으로 주어진 식을 연산자와 피연산자로 분리하기 주

2023년 3월 9일
·
0개의 댓글
·

(Swift) Programmers 보석 쇼핑

코딩테스트 연습 - 보석 쇼핑 문제 풀이 아이디어 Two Pointer 이 문제를 처음 봤을 때는 gems를 dfs 등을 사용해서 gems 내에 모든 범위를 구하고 그 범위가 주어진 조건에 부합하는지 확인하는 방법을 생각했습니다만, gems 배열의 크기가 최대 1

2023년 3월 7일
·
0개의 댓글
·

Xcode) 외부 Font 추가하기

실무를 하다보면 디자이너가 iOS에 내장된 시스템 폰트 이외의 다른 폰트를 사용할 때가 있습니다. 프로젝트에 원하는 폰트를 추가하는 방법을 알아봅시다. 프로젝트에 Font 파일 추가하기 Navigator의 좌하단에 있는 “Add File to ~”를 통해서 원하는 폰트 파일을 추가합니다. 그냥 Finder에서 복사를 하면 프로젝트 파일에서 인식하지 못하...

2023년 3월 4일
·
0개의 댓글
·

Xcode) Asset을 통해 Color 정의 하기

실무를 하는 중에 디자이너와 협업을 하다보면 사용할 색을 미리 정해놓고 쓰는 경우가 있습니다. 이 경우 코드에 RGB 값을 사용해서 아래와 같이 전역에 정의해놓고 사용하는 경우가 많습니다. 하지만 위와 같은 방식은 수정하기도 쉽지 않고 색을 직접 확인할 수 없기 때문에 실수의 가능성도 높습니다. 그리고 앱의 다크모드를 구현하는 경우 코드에서 색을 전부 구...

2023년 3월 3일
·
0개의 댓글
·

Undefined Symbol 에러 때문에 빌드가 안 될 때

이번에 새로운 프로젝트를 시작하면서 테스트를 위해서 iOS에서 테스트 작성을 도와주는 Quick과 Nimble이라는 라이브러리를 SPM을 활용해서 설치했습니다. 하지만 이 라이브러리를 설치하자마자 아래와 같은 에러가 나면서 빌드가 되지 않았습니다. 🚫 에러 메시지

2023년 3월 2일
·
0개의 댓글
·

SwiftUI: 아핀 변환 + 애니메이션

만들고자 하는 View 이번에 실무에서 아래와 같은 뷰를 만들어 달라는 요청을 받았습니다. 탭을 할 때마다 녹색, 노란색, 빨간색 원이 차례로 선택됩니다. 선택된 원은 다른 원 보다 알파값이 높고 크기도 조금 더 큽니다. 그리고 선택지가 바뀔 때 마다 각각의 원이 작아졌다가 다시 커지는 애니메이션을 구현해야 합니다. .transformEffect로 만들...

2023년 3월 1일
·
0개의 댓글
·

(Swift) Programmers 불량 사용자

코딩테스트 연습 - 불량 사용자 문제 풀이 아이디어 문제의 조건과 예시를 보면 불량 사용자를 의미하는 “*”이 들어간 불량 id는 여러 개의 id와 매칭이 될 수 있습니다. 반대로 하나의 id가 여러 개의 불량 id와 매칭이 될 수 있습니다. id와 불량 id는 1

2023년 2월 28일
·
0개의 댓글
·

(Swift) Programmers 삼각 달팽이

코딩테스트 연습 - 삼각 달팽이 문제 풀이 아이디어 처음에 문제를 보았을 때는 이차원 배열을 사용하지 않고 할 수 있는 방법도 있지 않을까 생각을 했습니다만, 삼각 달팽이를 직접 구현하지 않고 푸는 것은 불가능합니다. 따라서 이차원 배열로 삼각 달팽이를 직접 구현한

2023년 2월 27일
·
0개의 댓글
·

(Swift) Programmers 기지국 설치

코딩테스트 연습 - 기지국 설치 아파트를 순회하는 풀이: O(N), N은 최대 200,000,000 문제 풀이 아이디어 1번 아파트부터 순회하면서 그리디 알고리즘을 활용해서 풀면 됩니다. 총 4가지 케이스가 있습니다. 현재의 아파트가 전파가 닿지 않을 때

2023년 2월 24일
·
0개의 댓글
·

(Swift) Programmers 메뉴 리뉴얼

코딩테스트 연습 - 메뉴 리뉴얼 문제 풀이 아이디어 주어진 주문을 가지고 세트 메뉴를 만들어야 하는데요. 세트 메뉴를 만들 때는 순서는 관계 없으니까 조합을 사용해서 세트 메뉴를 구현하면 됩니다. 각각의 주어진 order를 가지고 세트 메뉴가 될 수 있는 세트 후보

2023년 2월 23일
·
0개의 댓글
·

띄울 Modal에 데이터 전달하기

만들고자 하는 기능 만들고자 하는 기능은 아래 캡쳐와 같습니다. 수정하기 모드일 때 단어 Cell을 클릭하면 해당 단어를 수정할 수 있는 모달을 띄우는 것입니다. 기존의 Modal과 다른 점 모달을 띄운다는 점에서 기존의 모달과 크게 다른 점은 없어보이지만 하나

2023년 2월 22일
·
0개의 댓글
·

contentShape: Tappable Area 만들기

만들고자 하는 뷰 현재 제가 만들고자 하는 뷰는 아래와 같습니다. 일단 기존의 단어 Cell 위에 ZStack으로 이미지를 올립니다. 그리고 이 상태에서 Cell을 터치하게 되면 단어 수정을 위한 Modal을 띄우는 것입니다. 하지만 그냥 Image에 onTapGe

2023년 2월 17일
·
0개의 댓글
·

(Swift) Programmers 쿼드압축 후 개수 세기

코딩테스트 연습 - 쿼드압축 후 개수 세기 문제 풀이 아이디어 쿼드 압축의 과정을 보면 이차원 배열을 압축할 수 없으면 해당 배열을 1/4한 이후에 같은 과정을 반복하면서 압축을 하고 있습니다. 그리고 이차원 배열의 크기가 1 x 1가 되어서 더 이상 압축할 수 없

2023년 2월 13일
·
0개의 댓글
·