본문 바로가기
반응형

분류 전체보기282

[iOS] Timer(타이머)와 Thread(스레드), RunLoop(런루프) ** 아직 공부하는 중이라 틀린 내용이 있을 수도 있습니다. ** 최근 프로젝트에서 반복 타이머가 필요한 경우가 있었는데, 그때 알아보았던 타이머, 스레드, 런루프에 대해 까먹기 전에 정리하려고 한다. Timer 찾아본 바로는 애플이 제공하는 반복 타이머는 두 종류가 있는데, Timer와 DispatchSourceTimer이다. Timer는 굉장히 오래됐고, DispatchSourceTimer는 비교적 최근에 나왔다고 한다. 이 중 내가 사용했던 것은 Timer 클래스이다. 애플 공식 문서에서는 Overview부터 "타이머는 런루프와 함께 작동한다. 타이머를 효과적으로 사용하려면 런 루프가 어떻게 작동하는지 알아야 한다. 스레딩 프로그래밍 가이드를 참조해라."라고 나와있다. 그래서 링크 걸려있는 "Thr.. 2022. 1. 10.
백준 15824번 너 봄에는 캡사이신이 맛있단다 - 스위프트(Swift) 풀이 서브 태스크 문제로 small N과 large N 각각 점수가 매겨져 있어 small N만 통과해도 부분점수를 받을 수 있다. 먼저 small N에 맞게 풀이를 떠올리는 것은 쉽다. 결국 최소와 최대만 필요하므로 2개를 뽑아 그 2개가 (최소, 최대)가 되는 경우의 수를 각각 세서 곱해주면 된다. 이때 정렬을 하면 경우의 수를 쉽게 구할 수 있다. [1, 3, 4, 10, 11]이 있고 (3, 11)이 각각 최소, 최대가 되는 경우의 수를 구해보자. 3보다 크고 11보다 작은 숫자는 [4, 10]이 있으므로 이것들이 각각 있는 경우와 없는 경우를 고려하면 2^2가지이다. 모든 경우의 수를 나열하면 [3, 11], [3, 4, 11], [3, 10, 11], [3, 4, 10, 11]이 되겠다. 이렇게 풀.. 2022. 1. 9.
백준 3015번 오아시스 재결합 - 스위프트(Swift) 풀이 + 그림 설명 어디서 많이 본 것 같은 느낌이 나면서도 중복 처리가 힘들었던 문제. 일단 기본 아이디어는, X보다 더 큰 사람 Y가 나오는 순간, 이제 Y보다 뒤에 있는 사람들은 X를 볼 수 없으므로 X를 더 이상 고려하지 않아도 된다는 것이다. 배열을 순차 탐색하면서 증가 때마다 무슨 일이 일어나고.. 왠지 스택을 쓰면 뭔가 될 것 같은 느낌이다. 아래와 같이 [3, 2, 2, 1, 2]로 주어진 상황이라고 하자. 손으로 풀어보면 그림과 같이 8쌍이 서로 볼 수 있다. 왼쪽부터 순차 탐색할 것이므로 A와 B가 서로 볼 수 있다면, 더 우측에 있는 B차례에서 카운트+1을 해줄 것이다. 아까 말했던 기본 아이디어, 더 큰 사람이 올 때까지 이제 스택에 일단 한 명씩 담자. 계속 더 작은 사람만 담다보면 스택 내부는 항상.. 2022. 1. 8.
백준 16287번 Parcel - 스위프트(Swift) 풀이 + 그림 설명 아이디어가 생각이 안 나서 결국 검색으로 해결한 문제ㅠㅠ DP라는 것은 감이 왔는데 지금까지 풀었던 DP 방식은 시간 초과 때문에 적용할 수가 없었다. 처음에 떠올렸던 방식은 dp(count, index, targetWeight) = weights[index...] 에서 count개의 소포를 뽑아 targetWeight를 딱 맞출 수 있는지 여부로 두고, index번째 item을 뽑는 경우 & 뽑지 않는 경우를 모두 고려하여 아래와 같은 식으로 푸는 것이었다. 하지만 count는 4, index는 5000, targetWeight는 무려 799,994여서 4*5000*799,994로 시간 안에 풀어낼 수가 없다.. dp(count, index, targetWeight) = dp(count - 1, ind.. 2022. 1. 7.
백준 14725번 개미굴 - 스위프트(Swift) 풀이 + 그림 설명 solved.ac CLASS 6 따려고 시작한 문제인데, 문제 조건에 제대로 명시되지 않은 것이 있어 도대체 무슨 문제인지 헤맸다. 첫 번째 입력 예를 보면서 아래 두 가지 모두 가능하다고 생각했다. 루트-리프로 가는 경로들 만으로는 절대 트리를 하나로 특정할 수가 없는데... 근데 또 정답 비율은 66%나 돼서 나만 이해를 못 하고 있구나 싶었다. 예제 입출력 2개를 한참 보고 나서야 설마 이건가? 하는 규칙을 찾았는데, 트라이 문제인 것 같았다. (너무 오랜만에 PS를 해서 트라이의 존재를 잊고 있었다ㅠㅠ) 풀고 나서 질문/검색에 가보니 https://www.acmicpc.net/board/view/18583 역시나 조건 추가 요청 글이 올라와있었다. 문제 오류가 맞는 것 같다. 66%의 사람들도 아.. 2022. 1. 6.
반응형