20 POSTS

Page 15

  • #algorithm

    Codility - Brackets

    ## Brackets ### 문제 문자열 S가 주어지고, S는 다음 경우 일 때 참을 반환해야 한다. - S가 비어있는 경우 - `(U)` or `[U]` or `{U}` 의 형태로 괄호안에 문자열이 있는 경우 - 괄호가 짝이 맞게 닫혀있는 경우 예를 들어 `{[()()]}`는 괄호가 알맞게 들어있지만, `([)()]`는 그렇지 못하다. (짝은 맞...

    2분
  • #algorithm

    Codility - Frog River One

    ## Frog River One ### 문제 개구리가 X 까지 가고 싶은데, X까지 가기 위해서는 1부터 X를 모두 지나가야 한다. 예를 들어보자. ``` 이렇게 배열이 주어져 있고 A[0] = 1 A[1] = 3 A[2] = 1 A[3] = 4 A[4] = 2 A[5] = 3 A[6] = 5 A[7] = 4 5까지 가고 싶다고 가정했을때, A[...

    2분
  • #algorithm#javascript

    Codility - Max Counters

    ## Max Counters ### 문제 숫자 N이 주어진다. 이 숫자 N은 모든 요소가 0인 길이 N인 배열을 의미한다. 그리고 배열 A가 존재한다. ``` 숫자 N이 5로 주어지고, 배열 A는 [3, 4, 4, 6, 1, 4, 4] 라고 가정하자. 초기 값 [0, 0, 0, 0 0] A[0] = 3, 3번째 (3-1번째) 요소의 크기를 1 늘린...

    3분
  • #algorithm#javascript

    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) { // 배열 길...

    1분
  • #algorithm#javascript

    Codility - Distinct

    ## Distinct ### 문제 배열 A안에 unique한 숫자가 몇 개 있는지 리턴하라. ### 풀이 ```javascript function solution(A) { return [...new Set(A)].length } ``` Set을 활용하면 쉽게 풀 수 있다. Set이 아니더라도 object등을 활용해보면 된다. https:...

    1분
  • #algorithm

    Codility - Max Product of Three

    ## 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을 만들수 있고 이것이 가장 큰 ...

    3분
  • #algorithm

    Codility - Number of Disc Intersections

    ## 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]...

    3분
  • #algorithm

    Codility - Triangle

    ## 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분
  • #algorithm

    Codility - Binary Gap

    ## 1-1 Binary Gap ### 문제 숫자 N을 이진수로 바꿨을때, 1과 1사이에 있는 0의 개수가 가장 많이 연속해 있는 0의 개수를 구하라. ``` 9는 이진수로 바꿀 경우 1001, 이경우 0의 최대 개수는 2. 529는 이진수로 바꿀 경우 1000010001, 이경우 0의 최대 개수는 3. 20은 이진수로 바꿀 경우 10100, 이 경우...

    2분
  • #algorithm#javascript

    Codility - Cyclic Rotation

    ## 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...

    1분
  • #algorithm#javascript

    Codility - Odd Occurrences in array

    ## 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...

    1분
  • #algorithm

    Codility - Frog Jump

    ## 3-1 Frog Jump ### 문제 개구리가 X에서 Y까지 뛰어야 하고, 한번에 D 만큼 점프 할 수 있을 때, 몇번을 뛰어야 하는가? ### 풀이 ```javascript function solution(X, Y, D) { return Math.ceil((Y - X) / D) } ``` https://app.codility.com/...

    1분
  • #algorithm

    Codility - Perm missing elem

    ## 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...

    1분
  • #algorithm

    Codility - Tape Equilibrium

    ## Tape Equilibrium ### 문제 길이 N의 배열을 임의로 두개로 쪼개고, 이렇게 해서 생긴 두배열의 합을 각각 구할때, 이 서로 두합의 차이가 가장 작은 경우를 구하라. ``` A[0] = 3 A[1] = 1 A[2] = 2 A[3] = 4 A[4] = 3 이경우 네가지로 쪼갤 수 있는데 P = 1, difference = |3 − ...

    2분
  • #algorithm

    Codility - Perm Check

    ## 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 ...

    1분
  • #algorithm

    Codility - Count div

    ## 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 ...

    1분
  • #algorithm#javascript

    Codility - Genomic Range Query

    ## 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...

    2분
  • #algorithm

    Codility - Min Avg Two Slice

    ## 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...

    2분
  • #algorithm

    Codility - Passing Cars

    ## Passing Cars ### 문제 N의 길이로 이루어진 배열 A는 0과 1로 이루어져 있는데, 0과 1은 각각 다음과 같은 의미를 가지고 있다. - 0은 차가 동쪽으로 간다 - 1은 차가 서쪽으로 간다 이 때 동쪽으로 간 차와 서쪽으로 간 차를 짝지을 수 있는 개수를 구하라. 단 먼저 동쪽으로 간차와 그 이후에 서쪽으로 간 차만 짝 지을 수 ...

    2분
  • #algorithm#data-structures

    알고리즘 - 연결 리스트

    ## 연결리스트 연결리스트, Linked List 는 각 노드들이 한 줄로 연결되어 있는 방식으로 각 노드는 데이터와 포인터 (다음 노드의 정보)를 가지고 있다. 연결리스트는 일반적인 배열과 다르게 삽입과 삭제가 `O(1)`에 가능하다는 장점이 있다. 하지만 특정 n번 째 정보를 찾는 데에는 `O(n)`시간이 걸린다는 단점도 있다. ![단일 연결 리스트...

    3분