목록전체 글 (132)
fffo
탐색 순차 탐색 자기 구성 순차 탐색 자주 사용되는 요소를 앞에 배치함으로써 순차 탐색의 효율을 높임 전진 이동법 : 한 번 탐색된 요소를 집합의 가장 앞에 위치 전위법 : 탐색된 요소를 바로 이전 요소와 교환 계수법 : 각 요소가 탐색된 수를 저장해 해당 수의 내림차순으로 요소를 재정렬 이진 탐색 정렬된 집합의 중앙값과 탐색값을 비교해 작다면 나머지 왼쪽을 대상으로 다시 이진탐색, 크다면 반대 이진 탐색 트리 왼쪽 자식 트리는 자신보다 작고 오른쪽 자식 트리는 자신보다 큰 이진 트리 이진 탐색을 위한 자료구조 트리의 각 노드는 중앙 요소임 삽입 시 이진 탐색을 수행, 조건에 맞는 리프 노드에 삽입 삭제 시 리프 노드가 아닌 경우 자식 노드를 적절하게 부모 노드에게 연결 삭제될 노드의 오른쪽 자식 노드의..
연산자 할당문은 값으로 평가되는 표현식인 문, 할당된 값으로 평가됨 동일 비교 연산자(==)는 타입을 체크하지 않으므로 예측하기 어려운 결과가 나올 수 있음 → 일치 비교 연산자(===) 사용 권장 NaN는 자신과 일치하지 않는 유일한 값 NaN === NaN; // → false 내장 함수 isNaN를 사용해야 함 isNaN(NaN); // → true Object.is 메서드 : 예측 가능한 정확한 비교 결과 반환 -0 === +0 // true Object.is(-0, +0) // false NaN === NaN // false Object.is(NaN, NaN) // true // 이외에는 일치 비교 연산자(===)와 같음 null을 확인 할 때는 typeof함수 대신 일치 비교 연산자(===)를..
문제 문제 설명 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만,..
문제 문제 설명 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해주세요. 제한사항 과학자가 발표한 논문의 수는 1편 이상 1,000편 이하입니다. 논문별 인용 횟수는 0회 이상 10,000회 이하입니다. 입출력 예 citationsr..
문제 문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이..
문제 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. 입출력 예 numbersreturn "17" 3 "011" 2 입출력 예 설명 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11..
정렬 정렬은 탐색을 위함 bubble function bubbleSort(arr) { for (let i = arr.length; i > 1; i--) { for (let j = 0; j arr[j+1]) { [arr[j], arr[j+1]] = [arr[j+1], arr[j]]; } } } return arr; } insertion sort 정렬 중간 단계에서 배열 중간에 삽입할 원소를 밀어 넣는 과정에서 헤맸다 function insertionSort(arr) { for (let i = 1; i arr[i-1]) continue; let cur = i; for (let j = i-1; j ..
데이터 타입 원시 타입 number string boolean undefined null symbol : ES6에서 추가된 타입 객체 타입 : 객체, 함수, 배열 등 number 배정밀도 64비트 부동소수점 형식을 따름 모든 수를 실수로 처리, 정수만 표현하기 위한 데이터 타입이 별도로 존재하지 않음 2진수, 8진수, 16진수 리터럴은 모두 메모리에 배정밀도 64비트 부동소수점 형식의 2진수로 저장되어 값을 참조하면 모두 10진수로 해석됨 const binary = 0b1000001; const octal = 0o101; const hex = 0x41; console.log(binary); // 65 console.log(octal); // 65 console.log(hex); // 65 console...