알고리즘, 자료구조/Codility
-
[Javascript] Codility Lesson 7 - Fish알고리즘, 자료구조/Codility 2022. 6. 8. 20:44
문제: https://app.codility.com/programmers/lessons/7-stacks_and_queues/fish/ 문제 요약: 함수 인자로 A, B 배열이 주어진다. (A와 B의 길이는 동일) 배열 A 요소는 물고기의 크기를 나타내며 범위는 0 ~ 1,000,000,000이다. 숫자가 클수록 큰 물고기이다. 배열 B 요소는 0, 1로 이루어져 있고 물고기의 방향을 나타낸다. 0은 상류, 1은 하류로 움직이는 것을 의미한다. 큰 물고기가 작은 물고기를 잡아먹는다. 최종까지 살아남는 물고기의 수를 구하여 반환한다. 시도 1 function solution(A, B) { // 모두 같은 방향으로 움직인다면 모든 물고기가 살 수 있다. if (B.indexOf(0) === -1 || B.in..
-
[Javascript] Codility Lesson 6 - NumberOfDiscIntersections알고리즘, 자료구조/Codility 2022. 5. 16. 01:44
문제: https://app.codility.com/programmers/lessons/6-sorting/number_of_disc_intersections/ 문제 요약: 겹치는 원이 총 몇 쌍인지 구해야한다. 원의 반지름을 나타내는 정수를 요소로 갖는 배열 A가 주어진다. 배열 A의 길이 범위는 [1... 100000] 이다. 배열 A의 각 요소 범위는 [0..2147483647] 이다. 겹치는 원의 쌍이 10,000,000를 초과하면 -1를 반환한다. function solution(A) { let result = 0; let discsList = A.map((radius, point) => { return [point - radius, point + radius] }); discsList.sort(..
-
[Javascript] Codility Lesson 5 - GenomicRangeQuery알고리즘, 자료구조/Codility 2022. 5. 15. 15:37
문제: https://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/ 문제 요약: A,C,G,T로 이루어진 문자열 S가 주어지며 각 문자는 순서대로 1,2,3,4 값을 갖는다. (A=1, C=2, G=3, T=4) 문자열 S의 길이 범위는 [1... 100000] 이다. 동일한 길이의 배열 P,Q가 주어지며, 배열의 요소 범위는 [0... N - 1] 이다. 배열 P,Q의 길이 범위는 [1... 50000] 이다. P[i]
-
[Javascript] Codility Lesson 4 - MissingInteger알고리즘, 자료구조/Codility 2021. 11. 22. 23:54
문제: https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/ 문제요약: N개의 요소를 갖는 배열A가 주어짐 배열 A의 요소 범위는 -100,000 ~ 100,000 배열 A의 요소에 미포함된 자연수 중 최솟값 찾기 function solution(A) { A.sort((a, b) => a - b); let min = 1; if (A[A.length - 1] min) { break; }; min = A[i] + 1; }; return min; ..
-
[Javascript] Codility Lesson 4 - MaxCounters알고리즘, 자료구조/Codility 2021. 11. 22. 01:52
문제: https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/start/ 문제 요약: N개의 0으로 채워진 a배열과, 임의의 수로 채워진 b배열이 있다고 가정 b배열을 순회하며 요소의 값에 따라 a배열의 요소 + 1 (increase) b요소의 값이 N + 1이면 a배열의 모든 요소를 max 값으로 변경 (maxCounter) function solution(N, A) { let nCounter = new Array(N).fill(0); const increase = (arr, x) => { arr[x - 1] += 1; return arr; } const maxCounter = (arr) => { let max = M..