
입력값을 받을 때 쓰는 readLine() 메소드는 입력값을 받을 때 쓴다.반환형은 Optional<String> 이다. 백준에서는 보통 Unwrapping을 해준다. 하지만 강제 Unwrapping은 Swift 언어를 사용하며 자제하는 것이 좋다. 반환형은 S

Swift에서는 struct에서도 func를 사용할 수 있기 때문에 Class와 차이점이 잘 보이지 않지만 사실 많다. Class (클래스) 참조 타입이다. ARC로 메모리를 관리합니다. 같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경시키면 할당한

단, 이 문제에서 연산 당 시간 복잡도가 O(1)이어야 한다는 점에 유의해야한다.흔히 하는 큐를 구현하면 될 것 같지만 Swift에서는 다른 언어에 비해서 까다롭다.Swift에서의 문제는 2가지인데1.Swift는 표준입출력이 느리다.2.Array의 removeFirst

구현한 방식은 Queue를 구현할 때 썼던 더블 스택을 활용하였다. 만약 pop_back을 하게된다면 위 사진과 반대로 dequeue 스택에만 값이 있을 시 enqueue 스택으로 뒤집어서 넘겨주고 enqueue 스택의 마지막 값을 pop해준다.즉, 위사진과 정반대로

구현 방식의 핵심은 문자열이 똑바로 되어있다면 head를 +1하여 앞문자를 지우고 거꾸로 되어있다면 tail을 -1하여 뒷 문자를 지운다. 또한 문자열을 자르는 과정에서 아무 문자열이 없다면 런타임오류가 생기므로 그것을 예외처리 해주어야한다. 문자열 특정 문자 자르

N=27인 경우N=9인 경우가 3\*3 형태로 되어있다5번째 N=9인 경우는 모두 빈칸이다N=9인 경우N=3인 경우가 3\*3 형태로 되어있다5번째 N=3인 경우는 모두 빈칸이다이를 이용해 분할 정복(Divide and Conquer)로 풀어보았다.하지만 시간 초과로

나름 이 문제의 핵심인 것 같아 가져온 문장이다.“너무 깊숙히 들어가지 맙시다. 깊숙히 들어가는 건 컴퓨터가 알아서 해줄 거예요.”규칙을 찾아보자사진 속 5개 를 기준으로 보자면1\. 1번 장대에서 원판 4개를 2번 장대로 옮긴다2\. 1번 장대에서 나머지 원판 1개

1부터 n까지 차례대로 1로 만드는 연산의 최솟값을 모두 구하며 DP를 이용하는 풀이이다. 경우 1 - DP[n]에서 1을 빼는 경우 Dp[n-1]+1 경우 2 - N을 2로 나눌 수 있는 경우 DP[N/2]+1 경우 3-N을 3으로 나눌 수 있는 경우 DP[N/

If문인데 조건에 변수가 들어간 형태가 있길래 무엇인지 궁금하여 찾게되었다.우리는 변수에 값이 있을지 없을지 모르는 상황에서 Optional을 사용하지만, 그 값을 안전하게 가져오려면Optional Binding을 사용하여 값을 안전하게 Unwrap 해야 한다.if l

우선순위 큐(Priority queue)는 평범한 큐나 스택과 비슷한 축약 자료형이다. 그러나 각 원소들은 우선순위를 갖고 있다. 우선순위 큐에서, 높은 우선순위를 가진 원소는 낮은 우선순위를 가진 원소보다 먼저 처리된다.우선순위 큐가 힙이라는 것은 널리 알려진 오류이

그래프의 종류 >### 연결 그래프 모든 정점들에 대해서 어느 두 정점을 잡아도 갈 수 있는 경로가 존재하는 그래프가 연결 그래프(Connected Graph)이다. >### 비연결 그래프 모든 정점들에 대해서 어느 두 정점을 잡았을 때 경로가 하나라도 존재하지 않

DFS와 BFS >### DFS 스택 또는 재귀 함수를 이용하여 구현한다. 최적의 해라는 보장이 없다 그래프의 규모가 클 때 사용한다. >### BFS 스택 또는 재귀 함수를 이용하여 구현한다. 최적의 해를 보장한다. 그래프의 규모가 작을 때 사용한다. BOJ 문

트리와 그래프의 관계 그래프란 > 그래프는 노드(하나의 점)와 노드 간을 연결하는 간선으로 구성된 자료 구조이다. 이를 통해 연결된 노드 간의 관계를 표현할 수 있는 자료구조이다. 트리란 > 트리는 그래프와 같이 노드와 노드간을 연결하는 간선으로 구성된 자료구조이다

배열 맨 끝에 추가siftUp으로 위로 올림루트(첫 번째)를 반환값으로 저장마지막 원소를 루트로 이동마지막 원소 제거siftDown으로 아래로 내림최댓값, 최솟값 둘 다 빠르게 삭제해야 함양쪽 힙을 즉시 동기화하지 않고, Dictionary로 유효성만 추적처음에는 배열