본문 바로가기

프로그래밍/알고리즘, 프로그래밍 언어35

[코딩테스트] Codility 5-3  GenomicRangeQuery (JavaScript) 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/genomic_range_query/ Solution1 정답률 : 62% 시간복잡도 : O(N * M) 코드 작성 S를 impact factor 숫자로 된 문자열로 바꾸기 P와 Q를 반복문으로 순회하며, S 구간별 최소값 찾기 function solution(S, P, Q) { let Num = ''; for (let i=0; i 2022. 1. 27.
[코딩테스트] Codility 5-4 MinAvgTwoSlice (JavaScript) - 평균의 수학적 특성 활용 문제 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/min_avg_two_slice/ Solution 정답률 : 100% 시간복잡도 : O(N) 시간복잡도를 줄이기 위해 수학적 인사이트가 필요했다. 두 수의 평균은 두 수 중 작은 수보다 크거나 같다 정수 m, n이 있고, m 2022. 1. 26.
[코딩테스트] Codility 5-1 PassingCars (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/5-prefix_sums/passing_cars/ Solution1 정답률 : 100% 시간복잡도 : O(N) East 방향의 자동차를 east 배열을 선언하여 따로 넣기 특정 East 방향의 자동차보다 큰 자동차들 개수에서, East 방향의 자동차 수를 뺀 수를 count에 더해주기 function solution(A) { let count = 0; // 배열 A에서 east 방향의 자동차만 담는 배열을 따로 선언하기 let east = []; for (let i=0; i 1000000000 ? -1 : result; } 2022. 1. 26.
[코딩테스트] Codility 4-4 MissingInteger (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/4-counting_elements/missing_integer/ Solution 1 정답률 : 66% 시간복잡도 : N^2 코드 작성 전달인자인 배열 A의 중복을 제거한 뒤, 오름차순으로 정렬하고, 0 이상의 엘리먼트만 필터합니다. 1부터 100,000까지 양의 정수를 엘리먼트로 갖는 배열 number를 선언합니다. 두 배열의 0번 인덱스를 비교하여, A의 엘리먼트 중 비어있는 양의 정수의 최소값을 찾을 수 있습니다. function solution(A) { // 배열 A의 중복 제거, 오름차순 정렬, 양의 정수만 필터링한 배열 positive 선언 let newA = [...new Set(A)]; let a.. 2022. 1. 21.
[코딩테스트] Codility 4-3 MaxCounters (JavaScript) 문제 링크 : https://app.codility.com/programmers/lessons/4-counting_elements/max_counters/ Solution 1 정답률 : 100% 시간복잡도 : O(N+M) 코드작성 우선 결과를 담을 길이가 N인 arr 엘리먼트를 선언해야 한다. arr 엘리먼트의 최대값인 max 변수와 max counter의 기준이 될 변수 maxCounter도 따로 선언했다. 시간복잡도는 O(N^2)보다 효율적인 코드를 작성해야 한다. 따라서 for 문 내에서는 조건문을 통해 값을 할당하는 코드만 작성했고, 시간복잡도가 O(N)이 되는 Math.max, fill 등의 메소드는 사용하지 않았다. function solution(N, A) { let arr = Array(N.. 2022. 1. 19.
[코딩테스트] Codility 4-1 FrogRiverOne (Javascript) - set, add, size 전달인자 : 양의 정수 X, 배열 A 리턴값 : 배열 A의 엘리먼트를 0번 인덱스부터 순차적으로 조회하여, 1~X 사이 모든 양의 정수가 조회되는 시간 조건 : A의 엘리먼트는 1이상 X이하 문제 링크 : https://app.codility.com/programmers/lessons/4-counting_elements/frog_river_one/ 솔루션1 정답률 : 81% 시간복잡도 : O(N) 코드 작성 배열 arr에 조회된 값을 true로, 조회되지 않은 값을 false로 할당하여 모든 엘리먼트가 true가 되는 지점을 찾기 1. 조회한 A의 엘리먼트를 기록하기 위한 배열 arr 선언 2. 배열 arr의 길이는 X+1이며, 각 엘리먼트는 false 3. A를 반복문으로 순회하며 조회된 A의 엘리먼트.. 2022. 1. 18.
[코딩테스트] Codility 3-1 TapeEquilibrium (Javascript) 문제 링크 : https://app.codility.com/programmers/lessons/3-time_complexity/tape_equilibrium/ 솔루션1 점수 : 53% 시간복잡도 : O(N*N) 코드 작성 i의 값을 1부터 N-1 까지 for문 돌리기 i 기준으로 slice를 해서 전달인자를 두 개의 배열로 나누기 두 배열의 차이를 선언된 arr 배열에 담고, 최소값을 리턴하기 function solution(A) { let arr = []; let Length = A.length function sumArr (A) { let result = A.reduce((acc,cur)=>{return acc+cur}) return result; } for (let i=1; i acc + cur) .. 2022. 1. 17.
[JavaScript] 십진수를 이진수로 변환하기 십진수를 이진수로 변환하기 (toString 메소드 사용) - 문법 : 변수.toString(2) - 매개변수에 따라 다른 진수로도 변경 가능 // 십진수 100을 이진수로 변경 let number = 100; number.toString(2) // '1100100' // 십진수 100을 오진수로 변경 let number = 100; number.toString(5) // '400' // 숫자를 변수에 할당하지 않으면 에러발생 100.toString(2) // Uncaught SyntaxError: Invalid or unexpected token 이진수를 십진수로 변환 (parseInt 메소드 사용) - 문법 : parseInt(변환할 숫자, 2) - 매개변수에 따라 다른 진수로도 변경 가능 // 이진.. 2022. 1. 12.
반응형