Codility - Missing Integer
## Missing Integer ### 문제 주어진 배열 A에 빠져 있는 가장 작은 양의 정수를 구하시오 ``` A=[1, 3, 6, 4, 1, 2] 이라면 답은 5 A=[1, 2, 3] 이라면 답은 4 A=[-1, -3] 이라면 답은 1 ``` ### 풀이 ```javascript function solution(A) { // 배열 길...
## Missing Integer ### 문제 주어진 배열 A에 빠져 있는 가장 작은 양의 정수를 구하시오 ``` A=[1, 3, 6, 4, 1, 2] 이라면 답은 5 A=[1, 2, 3] 이라면 답은 4 A=[-1, -3] 이라면 답은 1 ``` ### 풀이 ```javascript function solution(A) { // 배열 길...
## Distinct ### 문제 배열 A안에 unique한 숫자가 몇 개 있는지 리턴하라. ### 풀이 ```javascript function solution(A) { return [...new Set(A)].length } ``` Set을 활용하면 쉽게 풀 수 있다. Set이 아니더라도 object등을 활용해보면 된다. https:...
## Max Product of Three ### 문제 길이 N인 배열 A가 주어졌을때, 임의로 세개의 숫자를 곱했을 때 가장 큰 값을 만들 수 있는 배열의 Index를 리턴해라. ``` A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6 2, 4, 5번째를 곱하면 60을 만들수 있고 이것이 가장 큰 ...
## Number of Disc Intersections ### 문제 N개의 디스크가 존재하고, 디스크는 각각 0~ N-1의 번호를 가진다. 이는 A라는 배열에서 표현되는데, `A[N]` 는 해당 디스크의 반경을 의미한다. ``` A[0] = 1 A[1] = 5 A[2] = 2 A[3] = 1 A[4] = 4 A[5] = 0 ``` ![discs]...
## Triangle ### 문제 길이 N의 배열 A가 주어진다. (P, Q, R)은 삼각형이 될 수 있는데, 이는 - 0 ≤ P < Q < R < N - A[P] + A[Q] > A[R] - A[Q] + A[R] > A[P] - A[R] + A[P] > A[Q] 라는 조건을 만족 하기 때문이다. ``` A[0] = 10 A[1] ...
## 1-1 Binary Gap ### 문제 숫자 N을 이진수로 바꿨을때, 1과 1사이에 있는 0의 개수가 가장 많이 연속해 있는 0의 개수를 구하라. ``` 9는 이진수로 바꿀 경우 1001, 이경우 0의 최대 개수는 2. 529는 이진수로 바꿀 경우 1000010001, 이경우 0의 최대 개수는 3. 20은 이진수로 바꿀 경우 10100, 이 경우...
## 2-1 Cyclic Rotation ### 문제 배열 A가 주어지고 이를 K번 각 배열의 요소를 오른쪽으로 이동시켰을 때, 그 결과를 리턴하시오. ``` A = [3, 8, 9, 7, 6] K = 3 [3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7] [6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9] [7, 6, 3, 8...
## 2-2 Odd Occurrences in array ### 문제 숫자로 이뤄진 배열에서 홀수 번 등장하는 숫자를 찾아서 리턴해라. ``` A[0] = 9 A[1] = 3 A[2] = 9 A[3] = 3 A[4] = 9 A[5] = 7 A[6] = 9 7은 한번만 등장하므로 7을 리턴해야 한다. ``` ### 풀이 ```javascri...
## 3-1 Frog Jump ### 문제 개구리가 X에서 Y까지 뛰어야 하고, 한번에 D 만큼 점프 할 수 있을 때, 몇번을 뛰어야 하는가? ### 풀이 ```javascript function solution(X, Y, D) { return Math.ceil((Y - X) / D) } ``` https://app.codility.com/...
## 3-2 Perm Missing Elem ### 문제 길이 N으로 이루어진 배열 A은, 1부터 N+1 의 숫자로 이루어져 있다. 여기에서 빠진 숫자를 찾아라. ``` A[0] = 2 A[1] = 3 A[2] = 1 A[3] = 5 4 가 누락되어 있으므로, 정답은 4 다. ``` ### 풀이 ```javascript function solut...
## Tape Equilibrium ### 문제 길이 N의 배열을 임의로 두개로 쪼개고, 이렇게 해서 생긴 두배열의 합을 각각 구할때, 이 서로 두합의 차이가 가장 작은 경우를 구하라. ``` A[0] = 3 A[1] = 1 A[2] = 2 A[3] = 4 A[4] = 3 이경우 네가지로 쪼갤 수 있는데 P = 1, difference = |3 − ...
## Perm Check ### 문제 길이 N인 배열이 주어져 있고, 안에는 서로 다른 숫자가 들어가 있다. 이 서로 다른 숫자가 연속하는 숫자면 true, 아니라면 false를 리턴하라. ``` A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2 는 1을 리턴하면 된다. ``` ``` A[0] = 4 A[1] = 1 A[2] = 3 ...
## Count Div ### 문제 A와 A보다 같거나 큰 B, 그리고 K가 주어질 때, A와 B사이에 K로 나누면 나머지가 0인 숫자의 개수를 구하라. ``` A=6 B=11 K=2 6, 8, 10 이 있으므로, 정답은 3 이다. ``` ### 풀이 ```javascript function solution(A, B, K) { return ...
## Genomic Range Query ### 문제 DNA는 A, C, G, T로 구성되어 있는데, 이는 각각 1, 2, 3, 4를 가르킨다. 이러한 DNA를 리턴하는 S가 있고, 배열의 길이가 같은 P와 Q가 있다. ``` S=CAGCCTA P=[2, 5, 0] Q=[4, 5, 6] 각 0번째 요소는 2, 4다. 2번째 ~ 4번째 DNA는 GCC...
## Min Avg Two Slice ### 문제 길이가 N인 비어있지 않은 배열 A가 주어진다. 한쌍의 숫자 P, Q의 범위는 `0 <= P < Q < N` 다. 주어진 P와 Q로 A배열을 slice한다. (최소 2개이상의 요소가 있어야 한다.) (P, Q)는 `A[P] + A[P + 1] + ... + A[Q]`이며, (P, Q)의 평균은 `(A[P...
## Passing Cars ### 문제 N의 길이로 이루어진 배열 A는 0과 1로 이루어져 있는데, 0과 1은 각각 다음과 같은 의미를 가지고 있다. - 0은 차가 동쪽으로 간다 - 1은 차가 서쪽으로 간다 이 때 동쪽으로 간 차와 서쪽으로 간 차를 짝지을 수 있는 개수를 구하라. 단 먼저 동쪽으로 간차와 그 이후에 서쪽으로 간 차만 짝 지을 수 ...
## 연결리스트 연결리스트, Linked List 는 각 노드들이 한 줄로 연결되어 있는 방식으로 각 노드는 데이터와 포인터 (다음 노드의 정보)를 가지고 있다. 연결리스트는 일반적인 배열과 다르게 삽입과 삭제가 `O(1)`에 가능하다는 장점이 있다. 하지만 특정 n번 째 정보를 찾는 데에는 `O(n)`시간이 걸린다는 단점도 있다.  의 질문을 보고, 답에 대한 해석을 제멋대로 써보았습니다. ### 1....
## Generator 제네레이터의 개념에 대해 이해하기 전에, 먼저 반복자 (Iterator)에 대해 알아보자. ### 0. Iterator 반복자는, 두개의 속성 (`value`와 `done`)을 반환하는 `next()`메소드를 사용하여 [Iterator protocal](https://developer.mozilla.org/en-US/docs/W...