본문 바로가기
728x90

전체보기139

[iOS/Swift] Property Wrapper 를 활용한 UserDefaults 이용하기 지난 포스팅에서 UserDefaults, Onboarding 페이지에 대해서 작성했었고, Onboarding 페이지를 구현하기 위해 UserDefaults 를 이용했었습니다. 스터디하시는 분 중에서 Property Wrapper 를 이용하면 효율적으로 사용할 수 있다고 해서 공부를 했습니다. ✍️ 감사합니다! 💡 Property Wrapper 란? Property Wrapper 는 Property 에 대해 특정한 기능을 정의할 수 있는 기능입니다. Swift5.1 에서 추가된 기능이라고 합니다. Property wrapper 는 Property 가 저장되는 방식을 관리하는 코드와 Property 를 정의하는 코드 사이에 분리 계층을 추가해줍니다. 저는 Property 가 정의되고, 저장되기 전에 Wrap.. 2021. 3. 14.
[알고리즘/Python] 프로그래머스 - 위장 (해시) 서로 다른 옷의 조합의 수 구하는 법 👀 여러 의상끼리의 조합을 구하는 것이므로 곱집합을 생각했다. 곱집합 (데카르트 곱)은 각 집합의 원소를 각 성분으로 하는 튜플들의 집합으로 A x B 라고 한다. 곱집합의 개수는 간단하게 A x B 로 계산할 수 있다. 해당 문제에서는 자기 자신만을 갖는 경우도 포함되어야 하기 때문에 (A+1) x (B+1) - 1 로 계산했다. 1 을 빼주는 이유는 (A+1) x (B+1) 의 경우에는 비어있는 경우도 포함되기 때문이다. 기존 리스트 = [a], [b], [c] 최종 결과 = [a], [b], [c], [a, b], [a, c], [b, c], [a, b, c] 풀이1 (시간초과) solution 함수 clothes : 스파이가 가진 의상들이 담긴 2차원 배열 r.. 2021. 3. 11.
[iOS/Swift] 온보딩(Onboarding) 페이지 만들기 - Storyboard, UserDefaults, SceneDelegate 💡 온보딩, Onboarding 온보딩 페이지는 새로운 유저나 다시 돌아온 유저를 환영해주는 역할을 한다. 유저에게 어플의 사용법을 알려주거나 기능에 대한 팁, 콘텐츠 샘플 등을 보여주기 위해 사용된다. 처음에 앱 최초 실행시 나타나는 페이지, 웰컴 페이지 등으로 검색을 했을 때에는 방법을 찾기가 어려웠다. 온보딩이라고 부른다는 것을 최근에 알게되었다. 🙂.. 개발하고자 하는 내용이 무엇으로 불리는지 아는게 중요하다고 느꼈다. (HIG 를 먼저 찾아봤다면 쉽게 찾았겠다..) 온보딩 페이지를 추가하고, 앱의 최초 실행시에만 나타나게 하는 예제를 개발해보겠습니다! Xcode 프로젝트에 Onboarding storyboard 추가하기 Storyboard 들의 첫 번째 VC 의 Storyboard ID 지정하기.. 2021. 3. 8.
[iOS/Swift] UserDefaults 를 이용해 데이터 저장하기, 앱 최초 실행 여부 판단하기 👀 UserDefaults class UserDefaults : NSObject 💡 An interface to the user’s defaults database, where you store key-value pairs persistently across launches of your app. 사용자의 defaults 데이터베이스에 Key-Value 형태의 데이터를 저장할 수 있는 방법입니다. Foundation framework 에 포함되어 기본으로 제공되는 클래스로 간단하게 데이터를 저장할 수 있습니다. defaults 라고 부르는 이유는 일반적으로 앱 시작시 기본 상태 또는 기본 작동 방식을 결정하는 데 사용되기 때문이라고 합니다. ✔︎ UserDefaults object 가져오기 let def.. 2021. 3. 7.
[알고리즘/Python] 프로그래머스 - 네트워크 (DFS) 풀이1 solution 함수 n : 컴퓨터의 개수 computers : 연결에 대한 정보가 담긴 2차원 배열 return : 네트워크의 개수 dfs 함수 graph : computers v : 현재 index visited : 방문처리를 위한 1차원 배열 자세한 풀이 연결되지 않은 네트워크가 있을수도 있으므로 index 를 n 만큼 반복하며 dfs 함수를 호출한다. 처음 방문하는 경우에는 새로운 네트워크가 시작되는 것과 같다. count 를 증가시킴 현재 index 를 방문처리 시킴 이미 방문처리 되어있다면 네트워크가 연결되어 있으므로, count하지 않음 graph 를 반복하며 방문하지 않은 노드에 대해 방문처리, dfs 재귀호출 count = 0 def dfs(graph, v, visited): gl.. 2021. 3. 6.
[알고리즘/Python] 프로그래머스 - 타겟 넘버 (DFS) 풀이1 DFS 를 어떻게 이용할지 감이 안와서 비효율적으로 풀어버렸다. 가능한 케이스를 전부 고려해서 구현 itertools.product 이용해서 곱집합 구하기 solution 함수의 파라미터와 리턴값은 다음과 같다. numbers : 사용할 수 있는 숫자가 담긴 배열 target : 타겟 넘버 return : 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수 자세한 풀이는 다음과 같다. product 함수를 통해 가능한 case 구하기 (cases 예시는 그림 참고) 덧셈과 뺄셈 연산을 할 수 있으므로 [-1, 1] 을 곱하는 값이라고 생각했다. length 만큼 반복하며 case[i] * numbers[i] 를 더한 값이 target 과 같으면 count 를 증가시켰다. from iterto.. 2021. 3. 6.
[알고리즘/Python] BOJ 1158 - 요세푸스 문제 (기초 자료구조) 원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다. 예를 들어 (7, 3)-요세푸스 순열은 이다. 풀이1 단순히 리스트를 사용해서 풀었다. index와 target 변수를 지정해 리스트에서 target 을 제거하고, 다시 현재위치에서 k번째 사람이 제거될수 있도록 index 를 변경시켰다. # BOJ-1158.py from sys import stdin input = stdin.readline n, k = map(int, input().split()) nums = list(range(1, n+1)) result = [] target = k while(True): index = nums.index(target) nums.remove(target) result.append(target) .. 2021. 3. 6.
[iOS/Swift] TableView 로 초간단 TodoList 만들기 이전에 포스팅한 UITableView, UITableViewCell, Protocols 을 이용해서 앱을 실제로 만들어볼게요. 공식문서를 보고 정리했던 내용들이라 어렵게 작성한것 같아서 실습으로 한 번 더 환기하려고 합니다! 개발 순서는 다음과 같아요 🙂 Storyboard 에서 TableView 추가하기 TableView 내에 TableCell 구성 만들기 CustomCell 클래스 만들고 연결하기 TableView Protocol 준수하기 앱 실행하기 1. Storyboard 에서 TableView 추가하기 스토리보드를 이용해서 UI 개발을 진행하고 있습니다. TableView 와 TableViewCell 을 추가해줍니다! 2. TableView 내에 TableCell 구성 만들기 Table View.. 2021. 3. 1.
[iOS/Swift] TableView 를 위한 Protocol :: Datasource, Delegate TableView 를 위한 Protocol UITableView 를 위한 Protocol 은 UITableViewDataSource, UITableViewDelegate 가 있다. 여기서 Protocol 은 TableView를 이용하기 위해 해야할 일들의 목록, 즉 구현해야할 method 들이다. protocol 준수는 클래스간 상속을 하듯이 작성해주면 된다. UITableViewDataSource protocol 의 경우, 필수 구현 함수를 추가하지 않으면, 아래와 같은 에러가 발생한다. Fix 를 누르면 자동으로 추가해준다. extension BountyViewController: UITableViewDataSource { } UITableViewDataSource protocol UITableVie.. 2021. 3. 1.
728x90