Swift
-
Programmers) Lv2 가장 큰 수Algorithm/Programmers 2020. 5. 1. 11:06
출처: https://programmers.co.kr/learn/courses/30/lessons/42746 분류: Lv2, 정렬 접근방식 주어진 수로 만들 수 있는 가장 큰 수를 구하는 문제입니다. 처음엔 첫 자리부터 비교하려고 했었는데요, 이렇게 하면 매우 복잡해집니다. 우선 앞 자리부터 비교하기가 어렵습니다. 길이를 알면 자리수로 나눠볼텐데 그것도 안되고 뒤집자니 뒤가 0이라면 날라갈테고 문자열로 바꿔서 한 자리씩 비교하더라도 각각의 길이가 다르기 때문에 어렵습니다. 무작정 길이가 짧다고 앞에 둘 수가 없습니다. 가령, [5, 559] 가 있다면 5559 < 5595 가 되어버립니다. 중간에 0이 껴있는 경우는 어떻게 처리 할 것이며... 네 첫 단추를 잘못 끼웠습니다... 결국 다른 분들의 풀이를..
-
collectionView column 개수 정하기 - iPad에서 개수가 달라질 때iOS 2020. 4. 24. 18:15
collectionView의 column(가로)에 보여지는 셀의 개수를 정하고 싶을 때는 flowLayout을 건드리는 방법부터 delegate를 이용하는 방법까지 많은 방법들이 있는데요, 검색해보면 많이 나오니 다들 잘 아실거라 생각해요. 저는 주로 delegate를 이용하는 방법을 사용해왔었는데요, 최근 문제가 발생했습니다. 분명 interItem, inset 등을 모두 0으로 설정했는데!!!! ipad에서 보니까 셀 사이에 여백이 생겨버리더랬죠. ☠️ flowLayout에서 제거해보고 별 짓을 다 해도 없어지지 않던 이 여백... 문제는 itemSize에 있었습니다. 저는 collectionView.bounds.size.width를 원하는 개수만큼으로 나눠서 사용했었는데요, collectionVie..
-
cellForItemAt: 에서 select 해주기iOS 2020. 4. 24. 16:07
cell이 select 되었을 때 셀에 어떤 처리를 해주는 경우가 많이 있죠. cellForItemAt: 에서 원하는 cell을 select 해주려면 어떻게 해야할까요? 접근 먼저 select를 처리해주는 방법부터 알아볼까요? delegate를 이용해 didSelectedItemAt 에서 처리해주는게 가장 대표적이지만 현재 목표와는 맞지 않습니다. 다른 방법으로 cell 자체의 isSelected 를 이용해 isSelected의 값이 변할 때마다 처리를 해주는 방법을 사용해야겠습니다. 활용 오늘은 collectionView의 cell을 선택하면 색이 바뀌는도록 만들어볼게요 :) 먼저 MyCollectionViewCell 을 만들어주고 거기서 isSelect 를 override 해서 색의 색을 바꿔줍니다...
-
collectionView, tableView reloadData 완료 시점iOS 2020. 4. 22. 18:01
collectionView, tableView 를 새로 그려야 할 경우 가장 먼저 떠오르는 방법은 reloadData() 가 아닐까 싶습니다. 하지만 reloadData()가 끝난 이후에 해줘야 하는 작업들이 있을 수도 있겠죠. 제 경우엔 reloadData()가 끝난 이후에 셀들에다 animation 처리를 해줘야 하는 경우였는데요, 단순히 realodData() 이후에 animation 작업을 해주면 바로 completed 되어버리는 현상을 겪었습니다. cell이 아직 완전히 reload 되기 전에 작업을 해줘서 발생한 문제라고 추측하고 reload가 끝난 시점에 처리해주기로 하였습니다. 먼저 reloadData() 가 발생하면 어떤 일들이 일어나는지 먼저 살펴봐야겠죠? reloadData()가 발생..
-
AppDelegate ?iOS 2020. 4. 22. 13:42
AppDelegate.swift 프로젝트를 생성하면 자동으로 생성되는 source file 입니다. 지금은 SceneDelegate도 추가 되었지만 우선 AppDelegate가 무엇이고 어떤 역할을 하는지, 해왔는지 알아야 SceneDelegate가 왜 등장했는지 알 수 있겠죠? 오늘은 AppDelegate에 대해 알아볼까 합니다. 오늘의 목표는 아래 그림을 박스들을 이해하는 것입니다. AppDelegate.swift source file은 두 가지 주요 기능을 합니다. AppDelegate class를 정의합니다. 만들어진 app delegate(application object)는 앱의 contents가 그려지고, 앱의 상태 변화에 대한 반응을 처리하는 window를 만듭니다. entry point ..
-
Programmers) Lv3 [2020카카오공채] 기둥과 보 설치Algorithm/Programmers 2020. 4. 14. 14:28
출처: https://programmers.co.kr/learn/courses/30/lessons/60061 분류: Lv3 접근방식 문제에 제시된 조건대로 잘 구현할 수 있는지 구현 능력을 파악하는 문제입니다. 특별한 기술이나 이론이 필요한 문제는 아닙니다. 조건에 맞게 잘 구현하면 됩니다... 잘 잘.. 잘.... 네... 정답률 1.9% ... 👀 문제의 핵심은 기둥과 보를 설치하고 삭제할 때 조건을 명확하게 이해하고 구현할 수 있느냐에 있습니다. 생각보다 여러가지 상황이 있기 때문에 각 케이스 별로 잘 분류해서 명확하게 풀어야겠어요. 저는 설치 / 삭제 기둥 / 보 상황별 이런식으로 쪼개서 케이스를 최대한 나눠서 풀어보았습니다. 해결방법 먼저 설치부터 확인해보죠. 설치는 기둥 설치, 보 설치 상황이..
-
Swipe Gesture 와 Pan Gesture 함께 쓰기, Gesture Recognizer simultaneouslyiOS 2020. 4. 10. 15:01
안녕하세요 :) 날이 많이 좋아졌는데 자유롭게 돌아다니기는 쉽지 않은 시국이네요. 세상도 저도 쉽지 시간을 살아가고 있는 것 같아요 😭 빨리 좋은 날이 오길... 🙏 본론으로 들어가서 오늘은 Swipe Gesture와 Pan Gesture 를 함께 사용하는 법을 알아보겠습니다. Swipe Gesture 는 Pan Gesture 를 포함하고 있는 부분이기 때문에 이 둘을 함께 사용하면 정상적으로 작동하지가 않습니다. 검색을 해보면 UIGestureRecognizerDelegate 의 func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIG..
-
Programmers) Lv3 [2020카카오공채] 자물쇠와 열쇠Algorithm/Programmers 2020. 4. 3. 21:13
출처: https://programmers.co.kr/learn/courses/30/lessons/60059#qna 분류: Lv3, 2020 카카오 공채 접근방식 배열의 크기가 3~20 으로 범위가 크지 않기 때문에 각각의 케이스를 맞춰가면서 됩니다. 핵심 포인트는 3가지 입니다. 1. lock 과 key 를 맞춰서 열 수 있는지 확인할 수 있어야 합니다. 2. 주어진 범위 안에서 key를 이동시킬 수 있어야 합니다. 3. key 를 회전시킬 수 있어야 합니다. 주의할 점은 범위를 설정할 때, key의 끝 부분이 lock의 시작 점에 오는 점부터 key의 시작 부분이 lock의 끝 점에 오는 점까지 를 확인해야 합니다. 문제의 예처럼 key와 lock이 둘 다 (3,3) 인 배열이라면, key의 끝 부분..