본문 바로가기

전체 글

(193)
[Swift] Lv3. 여행경로 (dfs) https://programmers.co.kr/learn/courses/30/lessons/43164# 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 생각 경로를 찾아서 갔다가 아니라면 return 해주기 나라 전체 방문이 아니라 티켓을 모두 쓰는(방문하는) 문제였다. dfs를 오랜만에 봤더니.. 어떻게 푸는지 까먹어서 많이 헤맸다.. 코드 전역변수를 안쓰려고 하다보니 매개변수 넣는 부분이 너무 ~ 길어져서 조금 코드가 복잡해졌다. 1, 2번 테스트 케이스를 틀렸는데 아래 ..
[iOS] UICollectionReusableView (diffable datasource) https://developer.apple.com/tutorials/app-dev-training/creating-a-progress-view Apple Developer Documentation developer.apple.com 오늘도 apple의 튜토리얼을 보고 정리한 내용입니다. 잘못된 내용이 있을 수도 있음을... 우선 UICollectionReusableView를 사용하는 이유가 무엇인지? - 아래처럼 Header를 만들어주기 위해서 - 스크롤될 때 삭제하지 않고 재사용 큐에 배치하기 위해서 어떻게 UICollectionReusableView를 사용해서 커스텀 헤더를 만들 수 있는지 한번 알아보겠습니다. UICollectionReusableView A view that defines the b..
[Swift] Copy-on-Write 최적화 코드 상에서 값을 복사해서 담는다 하더라도, 실제 값이 바뀌기 전까지는 하나의 메모리 값을 공유해서 사용한다. 메모리를 적게 차지하기 위해서 Swift 언어가 내부에서 처리하는 매커니즘 코드로 한번 살펴보겠습니다. var array = [1, 2, 3, 4, 5, 6] var subArray = array[0...2] subArray.append(7) subArray 배열을 생성할 때 array의 배열 [0...2] 부분을 대입했지만 이때 값의 복사가 아니라 동일한 메모리 공간을 가르키고 있게 됩니다. 그리고 값의 변경이 일어날 때 (여기서 append()) 값이 복사됩니다. Swift에서는 원시타입 구조체(Int, Double, String)와 Array, Set, Dictionary 등 컬렉션 구조체..
[Swift] 5582 공통 부분 문자열 (DP) https://www.acmicpc.net/problem/5582 5582번: 공통 부분 문자열 두 문자열이 주어졌을 때, 두 문자열에 모두 포함된 가장 긴 공통 부분 문자열을 찾는 프로그램을 작성하시오. 어떤 문자열 s의 부분 문자열 t란, s에 t가 연속으로 나타나는 것을 말한다. 예를 들 www.acmicpc.net 생각 처음엔 contains 함수를 사용하여 일일이 길이를 구했는데 시간초과가 났다. 시간을 줄이기 위해서 DP를 사용 풀이 만약 [i]와 [j]의 알파벳이 같다면 [i-1][j-1] 까지의 공통 부분 길이에서 1을 더해주고 저장한다. 같지 않다면 0이다. A B R R 0 0 1 A 1 0 0 B 0 2 0 전체코드 import Foundation let str1 = Array(rea..
[iOS] UISegmentedControl https://developer.apple.com/tutorials/app-dev-training/filtering-reminders iOS App Dev Tutorials 를 공부하고 작성한 글입니다. UISegmentedControl A horizontal control that consists of multiple segments, each segment functioning as a discrete button. 여러 segment로 구성된 수평 컨트롤로, 각 segment는 개별 버튼으로 작동합니다. - 각 컨트롤은 제목 또는 이미지(UIImage)로 표시할 수 있다고 합니다. - UISegmentedControl 객체는 특정 width가 설정되어 있지 않은 한 super view 내에 비례적으..
[iOS] UISwipeActionsConfiguration https://developer.apple.com/tutorials/app-dev-training/adding-and-deleting-reminders Apple Developer Documentation developer.apple.com iOS App Dev Trutorials를 공부하고 적은 글입니다. 사진과 같이 UICollectionView (list) 에서 왼쪽으로 swipe 액션을 취했을 때 Delete 버튼이 나올 수 있도록 설정을 해줄겁니다. (Delete는 왼쪽 끝까지 swipe 하면 자동으로 실행됩니다 -> performsFirstActionWithFullSwipe: Bool) UISwipeActionsConfiguration The set of actions to perform wh..
[Swift] LeetCode: Search Insert Position (lower bound) https://leetcode.com/problems/search-insert-position/ Search Insert Position - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 생각 냅다 바이너리 서치로 풀었다가 아 맞다 이거 찾는게 따로 있었는데 생각해서 다시 푼 문제..! lower bound : 찾고자 하는 값 이상이 처음 나타나는 위치 upper bound : 찾고자 하는 값보다 큰 값이 처음 나타나는 위치 여기선 lower bound로 넣을 ..
[Swift] 베스트앨범 (dictionary, 정렬) https://programmers.co.kr/learn/courses/30/lessons/42579# 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 생각 dictionary 에 key : 장르이름 value : (고유번호, 재생된 횟수) 로 선언해서 넣는다. [정렬] 1. 재생된 횟수를 모두 더해서 비교하여 재생된 횟수가 큰 장르이름 순으로 정렬한다. 2. 위에서 구한 순서대로 dictionary에서 장르이름을 찾아 재생된 횟수가 높은 순으로 value를 정렬한다. 장르 음악이 한번이면 한번만 출력한다...