본문 바로가기
반응형

개발/알고리즘36

알고리즘 8 : binarySearch 문제 오름차순 정렬된 정수의 배열(arr)과 정수(target)를 입력받아 target의 인덱스를 리턴해야 합니다. 입력 인자 1 : arr number 타입을 요소로 갖는 배열 arr[i]는 정수 인자 2 : target number 타입의 정수 출력 number 타입을 리턴해야 합니다. 주의사항 이진탐색 알고리즘(O(logN))을 사용해야 합니다. 단순한 배열 순회(O(N))로는 통과할 수 없는 테스트 케이스가 존재합니다. target이 없는 경우, -1을 리턴해야 합니다. 입출력 예시 let output = binarySearch([0, 1, 2, 3, 4, 5, 6], 2); console.log(output); // --> 2 output = binarySearch([4, 5, 6, 9], 10.. 2021. 9. 13.
알고리즘 7 : power 문제 두 수를 입력받아 거듭제곱을 리턴해야 합니다. 입력 인자 1: base number 타입의 자연수 (base >= 2) 인자 2: exponent number 타입의 정수 (exponent >= 0) 출력 number 타입을 리턴해야 합니다. 실제 계산 결과를 94,906,249로 나눈 나머지를 리턴해야 합니다. 주의사항 Math.pow, 거듭제곱 연산자 사용은 금지됩니다. 시간복잡도 O(logN)을 만족해야 합니다. 나머지를 구하는 이유는 계산 결과가 컴퓨터로 나타낼 수 있는 수의 범위를 넘을 수 있기 때문입니다. 하지만 모든 연산이 끝난 뒤에 그 결과를 94,906,249로 나누려고 해서는 안 됩니다. 연산 중간에도 이 범위를 넘을 수 있기 때문에, 연산을 할 때마다 나머지를 구하고 그 결과에 .. 2021. 9. 6.
알고리즘 6 : 프린터 문제 김코딩은 최근 인쇄할 일이 많이 생겨 창고에서 안 쓰던 프린터를 꺼냈습니다. 이 프린터의 성능을 테스트하여 새로운 프린터를 장만할지 결정하려고 합니다. 김코딩은 프린터의 인쇄 작업 목록의 크기와 최대 용량을 가정하고 각기 다른 용량의 문서를 차례대로 인쇄하여 모든 문서가 인쇄되는데 최소 몇 초가 걸리는지 테스트하기로 했습니다. 프린터 인쇄 작업 목록의 제한사항은 다음과 같습니다. [제한사항] 인쇄 작업 목록은 칸으로 이루어져 있습니다. 각 칸에는 한 개의 문서만 위치할 수 있습니다. 문서는 1초에 한 칸만 이동할 수 있습니다. 인쇄 작업 목록의 크기는 bufferSize이고 최대 용량 capacities 만큼 문서를 담을 수 있습니다. 만약, 인쇄 작업 목록의 크기가 2이고 최대 용량이 10Kib라.. 2021. 9. 6.
알고리즘 5 : largestProductOfThree 문제 : 정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값 리턴 입력 : 인자 1 : number 타입을 갖는 배열 출력 : number 타입을 리턴 주의사항 : 입력으로 주어진 배열은 1차원 배열 배열의 요소는 음수와 0을 포함하는 정수 배열의 길이는 3 이상이다. 입출력예시 let output = largestProductOfThree([2, 1, 3, 7]); console.log(output); // --> 42 (= 2 * 3 * 7) output = largestProductOfThree([-1, 2, -5, 7]); console.log(output); // --> 35 (= -1 * -5 * 7) 코드 삼중반복문 const largestProductOfThree .. 2021. 9. 5.
반응형