코드스테이츠 SEB FE 41기/데일리 코딩(Hard) (28) 썸네일형 리스트형 [알고리즘/javascript] DFS 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 깊이 우선 탐색(DFS, Depth First Search)을 합니다. 이 때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. 입력 인자 1 : node 'value', 'children' 속성을 갖는 객체 (Node) 'node.value'는 number 타입 'node.children'은 Node를 요소로 갖는 배열 출력 배열을 리턴해야 합니다. 주의사항 생성자 함수(Node)와 메소드(addChild)는 변경하지 않아야 합니다. 입출력 예시 let root = new Node(1); let rootChild1 = root.addChild(new Node(2)); let rootChild2.. [알고리즘/javascript] BFS 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 너비 우선 탐색(BFS, Breadth First Search)을 합니다. 이 때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. 입력 인자 1 : node 'value', 'children' 속성을 갖는 객체 (Node) 'node.value'는 number 타입 'node.children'은 Node를 요소로 갖는 배열 출력 배열을 리턴해야 합니다. 주의사항 생성자 함수(Node)와 메소드(addChild)는 변경하지 않아야 합니다. 입출력 예시 let root = new Node(1); let rootChild1 = root.addChild(new Node(2)); let rootChil.. [알고리즘/javascript] 거듭제곱 구하기 (분할 제곱 방법) 문제 두 수를 입력받아 거듭제곱을 리턴해야 합니다. 입력 인자 1: base number 타입의 자연수 (base >= 2) 인자 2: exponent number 타입의 정수 (exponent >= 0) 출력 number 타입을 리턴해야 합니다. 실제 계산 결과를 94,906,249로 나눈 나머지를 리턴해야 합니다. 주의사항 Math.pow, 거듭제곱 연산자 사용은 금지됩니다. 시간복잡도 O(logN)을 만족해야 합니다. 나머지를 구하는 이유는 계산 결과가 컴퓨터로 나타낼 수 있는 수의 범위를 넘을 수 있기 때문입니다. 하지만 모든 연산이 끝난 뒤에 그 결과를 94,906,249로 나누려고 해서는 안 됩니다. 연산 중간에도 이 범위를 넘을 수 있기 때문에, 연산을 할 때마다 나머지를 구하고 그 결과에 .. [알고리즘/JavaScript] 제곱근 구하기 제곱근 근삿값 구하기 5의 제곱근을 직접 구하자. 핵심은 점점 근삿값의 범위를 줄여나간다는 것이다. 5.14의 제곱근을 구한다고 가정하자. 1) 5.14의 제곱근의 정수 자리를 구한다. 루트5는 대강 2와 3 사이에 있다. (2의제곱)4 < 5 < (3의제곱)9 2 < 루트5 < 3 2) 이제 5의 제곱근이 2.xxxx..라는 것을 알게 되었다. 이것을 바탕으로, 제곱근 값을 소숫점 첫번째 자리까지 구한다. 소숫점 첫번째자리까지면 2.0~2.9 사이일 것이다. 따라서, 2.0과 2.1 사이에 있는지, 2.1과 2.2 사이에 있는지 계속 비교하여 소숫점 첫번째 자리를 찾는다. (2.2의 제곱) 4.8 < 5 < (2.3의 제곱) 5.3 2.2 < 루트5 < 2.3 5.14의 제곱근은 2.2와 2.3 사이이.. 이전 1 2 3 4 다음