본문 바로가기

전체 글114

앱 미리보기 지원하기 - 앱스토어 앱 미리보기는 스크린샷과는 다르게 동영상을 보여주는 것이다. 이를 가능하게 하기 위해서는 핵심부분들은.. 1. 동영상의 해상도가 지원하는 사양에 맞는 해상도와 같아야 한다. 2. 또한 확장자도 고려해야한다. 3. 또 가장 중요한, 최소 15초이상 최대 30초 이하이여야 한다. 4. 그리고 최대 30프레임이여야 한다. ( + 그리고 오디오가 포함되어 있어야하는 듯..? ) 앱 미리보기 지원사양은 아래에 나타나있다. https://help.apple.com/app-store-connect/#/dev4e413fcb8 가장 중요한건 해상도가 맞아야하는데.. 동영상 편집이나 이런걸 한번도 해본적이 없어서 그런 프로그램들이 없었고, 나름 찾아본 결과 무료로 간단하게 해상도를 바꿀 수 있는 프로그램을 찾았다. Ada.. 2021. 9. 2.
커스텀 폰트 용량 줄이기 - iOS 기존의 출시한 앱이 굉장히 앱 사이즈가 컸다 그때 당시에는 신경을 안썼었다. ( 신경 쓸 생각조차 나지 않았었다 ) 하지만 어느 순간 부터 메모리용량도 신경쓰게 됐고, 문득 내 앱을 보니 무슨.. 엄청난 어플도 아닌데 100MB 가까이 차지하고 있었다. 지금 계속해서 리팩토링 중인데 굳이 사용하지 않아도 되는 외부 라이브러리를 삭제하고, 필요없는 코드들도 최대한 줄이고 있는데, 꽤 많이 줄어들었다. ( 코드도 약 천오백줄 줄일 수 있었다 ) 그리고 대망의 폰트가 남아있었다 특히 서울한강체는 하나당 10MB나 차지한다! 내 앱은 그외 두개 더 추가적으로 사용하고 있었는데 그녀석들은 하나당 1MB 정도 차지하고 있었다. 여튼 서울한강체는 버리던가 추가적인 조치가 무조건 필요해보였다. 찾아보니 웹사이트로 폰트.. 2021. 9. 1.
백준 - 도도의 음식 준비 - 22953 - swift https://www.acmicpc.net/problem/22953 22953번: 도도의 음식 준비 첫째 줄에 요리사의 수 $N$ ($1 \le N \le 10$), 만들어야 할 음식의 개수 $K$ ($1 \le K \le 1\,000\,000$), 격려해줄 수 있는 횟수 $C$ ($0 \le C \le 5$)가 주어진다. 둘째 줄에 길이가 $N$인 정수 수열 $A$가 주어 www.acmicpc.net 문제는 완전탐색과 이분탐색으로 볼 수 있다. 완전탐색에는 순열과 조합을 이용했다. 크게 문제는 최적의 시간을 찾는 것으로, 각 요리사들에는 요리 시간이 정해져있고, K개의 음식을 모두 준비하는데 걸리는 가장 빠른 시간을 찾는 문제다. 이러한 유형은 미리 최적의 시간이 X라고 정하고서 탐색하는 방법, 즉 이.. 2021. 9. 1.
UICollectionView IndexPath 리팩토링 작년에 만들었던 앱을 리팩토링 하고 있다. 예전에는 왜 그렇게 짰는지.. 이해할 수 없는 건 아니지만 ㅎㅎ 리팩토링 하는 입장에서는 힘들다. 기존 뷰컨트롤러를 작성한 구조도 그렇고, 뷰 구성도 마음에 안 들어서 아예 새롭게 뷰 컨트롤러를 만들어서 작성했다. ( 그래도 신기한건 리팩토링 할 처음 당시에는 그렇게 기존 코드를 보기 싫었는데, 다 완성할 때쯤에는 이제 눈에 어느 정도 익혀졌다는 게 신기하다. ) 그 과정에서 CollectionView를 사용하게 되었고, 하다보니, section의 수가 7개가 되었다. cellForItemAt과 같은 메서드나, numberOfItemInSection과 같이, indexPath를 통해 구분하여 각각에 맞는 cell 또는 헤더, 푸터 뷰를 제공해야 한다. 어느 정도.. 2021. 8. 28.
백준 - 빌런 호석 - 22251 - swift https://www.acmicpc.net/problem/22251 22251번: 빌런 호석 LED를 2개까지 바꿀 수 있을 때, 5층에서 3층, 6층, 8층, 그리고 9층으로 바꿔버릴 수 있다. www.acmicpc.net 문제 유형은 구현, 완전탐색 또는 비트마스킹이 될 수 있다. 하나의 문제에서 다양한 접근법이 가능하므로 정말 좋은 문제인 것 같다. 어떻게 이런 문제를 만드는지 정말 대단하다. 내 기준에서는 조금 난이도가 있었다 내 접근법 우선 처음 접근법( 구현 + 완전탐색 ) 은 다음과 같았다. 하나의 디스플레이에 0부터 9까지 숫자를 표현할 수 있고, 각 숫자마다 필요한 LED가 다르다. 또, 각 디스플레이마다 LED는 최대 7개이다. 호석이는 1부터 최대 P개까지 LED를 반전시킬 수 있다... 2021. 8. 27.
백준 - 정보 상인 호석 - 22252 - swift https://www.acmicpc.net/problem/22252 22252번: 정보 상인 호석 암흑가의 권력은 주먹과 정보에서 나온다. 주먹은 한 명에게 강하고, 정보는 세계를 가지고 놀 수 있기 때문에 호석이는 세상 모든 정보를 모으는 "정보 상인"이 되고 싶다. 정보 상인은 정보를 www.acmicpc.net 문제 유형은 우선순위 큐 이용 문제다. swift에서는 우선순위 큐가 없기 때문에, 이진 힙으로 이용하여 따로 구현해야 한다. 몇 번 작성하다 보면은 저절로 외워진다. 우선순위 큐가 필요한 이유는, 쿼리가 다 주어진 다음에 계산을 시작하는 것이 아닌, 각 쿼리마다 그때그때 계산을 해야 한다. 한 번 거래한 정보는 호석이에게 더 이상 가치가 없기 때문에 고릴라도 그 정보를 파기한다. 어느 시점.. 2021. 8. 26.
백준 - 숨바꼭질 4 - 13913 - swift https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제는 너비 우선 탐색 - bfs 유형이다. X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 총 3가지의 움직임이 있는데, 3가지 모두 다 1초 후에 발생한다. 문제는 가장 빠르게 동생을 찾을 수 있는 시간을 묻고 있다. 모두 1초이므로, 간단하게 bfs를 통해서 풀 수 있다. .. 2021. 8. 26.
백준 - 늑대와 양 - 16956 - swift https://www.acmicpc.net/problem/16956 16956번: 늑대와 양 크기가 R×C인 목장이 있고, 목장은 1×1 크기의 칸으로 나누어져 있다. 각각의 칸에는 비어있거나, 양 또는 늑대가 있다. 양은 이동하지 않고 위치를 지키고 있고, 늑대는 인접한 칸을 자유롭게 www.acmicpc.net 실버 4의 낮은 난이도지만, 재밌는 문제였다. 문제 유형은 구현에 가깝다. 또는 bfs로도 풀 수 있긴 하다. 즉 bfs를 몰라도 풀 수 있는 문제다. 사실 나도 문제를 보자마자 bfs가 딱 떠올랐다. 대체로 bfs나 dfs가 들어가면 최소 실버1~2의 난이도를 갖는데, 의아했다. 왜 실버 4일까? 처음에는 늑대를 기준으로 bfs를 돌리면서 양을 만나는...이런 생각을 하다가, 양을 기준으로 .. 2021. 8. 25.