분류 전체보기(55)
-
[Baekjoon] 1021 회전하는 큐
문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., ak이었던 것이 a2, ..., ak와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 a2, ..., ak, a1이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a1, ..., ak가 ak, a1, ..., ak-1이 된다. 큐에 처음에 포함되어 있던 수 N이 주어진다. 그리고 지민이가 뽑아내려고 하는 원소의 위치가 주어진다. (이 위치는 가장 처음 큐에서의 위치이다.) 이때, 그..
2022.01.12 -
[Swift] Union-Find 자료구조 구현해보기
Union-Find 자료구조 개념 Union-Find는 서로소 부분집합 구조로 나뉘어진 데이터들을 다루는 자료구조입니다. 여기서 서로소 부분집합이란?? 수학적으로 표현하면, {1,2}, {3,4}, {5,6} 과 같이 서로 다른 원소들을 가진 집합들 사이 관계를 의미합니다. 3가지 집합에서 서로 공통된 원소가 없으면 서로소 부분집합이라고 합니다. 그럼 이를 어떻게 구현할까요? 두가지 함수와 한개의 배열로 구현해볼 수 있습니다. Parent 배열 먼저, 자기 자신을 가리키는 parent 배열 한개를 만들어줍니다. 0 1 2 3 4 5 0 1 2 3 4 5 이 parent 배열은 자신의 부모를 가리킵니다. 처음 시작은 모두 각자 자기자신을 부모로 가지고 있습니다. findParent(A) A원소의 부모가 어..
2022.01.08 -
[Baekjoon] 10775 공항
문제 오늘은 신승원의 생일이다. 박승원은 생일을 맞아 신승원에게 인천국제공항을 선물로 줬다. 공항에는 G개의 게이트가 있으며 각각은 1에서 G까지의 번호를 가지고 있다. 공항에는 P개의 비행기가 순서대로 도착할 예정이며, 당신은 i번째 비행기를 1번부터 gi (1 ≤ gi ≤ G) 번째 게이트중 하나에 영구적으로 도킹하려 한다. 비행기가 어느 게이트에도 도킹할 수 없다면 공항이 폐쇄되고, 이후 어떤 비행기도 도착할 수 없다. 신승원은 가장 많은 비행기를 공항에 도킹시켜서 박승원을 행복하게 하고 싶어한다. 승원이는 비행기를 최대 몇 대 도킹시킬 수 있는가? https://www.acmicpc.net/problem/10775 10775번: 공항 예제 1 : [2][?][?][1] 형태로 도킹시킬 수 있다. ..
2022.01.07 -
Swift로 입력 받기 (출력은 print, 근데 입력은..?)
swift로 백준을 풀려고 해보니 입력에서 막혀버렸습니다 ㅜㅅㅠ 백준은 항상 C++로 풀기만 했고 swift로는 print문을 이용해서 출력만 해보았지.. 입력은 해보지 않아서 이 기회에 정리해두려고 합니다ㅏ readLine() 이용하기 readLine 메소드를 이용하면 한줄로 받아올 수 있어요. 위 사진을 보시면 두가지를 알 수 있어요. 첫번째는, optional로 받아와요. 즉 이를 해결해주려면 강제 언래핑을 해주어야 합니다. 아래처럼요! 근데, 강제 언래핑은 안 좋다고 하니 옵셔널 체이닝이나 옵셔널 바인딩으로 풀면 좋을 거 같아요. 두번째로는, 숫자든 문자든 모두 string으로 받아와요. c++는 타입을 지정해서 받아올 수 있지만 swift의 readLine메소드는 전부 string으로 받아오니 ..
2022.01.07 -
[HIG] App Architecture
오늘은 App Architecture에 대해서 읽어보겠습니다. 목차 - Launching - Onboarding - Loading - Modality - Navigation - Accessing User Data - Settings Launching Launch는 시작하다는 것을 의미하므로 Launching은 앱이 시작할 때를 의미할것이라구 예상할 수 있습니다. Launch경험은 사용자들이 앱에 대해 상당한 영향을 줄 수 있기 때문에, 앱을 오래 사용하든, 어느 기기를 사용하든 상관없이 빠르고 seamless해야 한다구 합니다! 여기서, seamless하다는 것은 아주 부드럽게, 원활하게 이어져야한다는 의미라고 해요. 그니까 앱이 켜질 때 막 splash화면같이 방해를 주는 것을 최소화 시켜야한다네용 아..
2022.01.06