목록알고리즘 (7)
dolog
1. 버블 정렬(bubble sort)서로 인접한 두 원소를 검사하여 정렬하는 알고리즘인접한 2개의 요소를 비교하여 교환하며 정렬한다.이미 정렬이 되어 있는 경우(최고 케이스) : O(n)정렬이 안되어 있고 요소의 개수가 많은 경우(최악 케이스) : O(n^2)const numbers = [7, 4, 5, 1, 3];function bubbleSort(arr) { let temp = 0; for(let i = 0 ; i arr[j+1]) { temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } console.log(..

1. 2차원 배열을 초기화 하고 요소를 넣을 때 주의 function solution(n) { // answer = [[]];로 초기화하면 에러가 난다. // 반드시 각 요소마다 초기화가 필요하다. let answer = []; for(let i = 0 ; i < n ; i++) { answer.push([]); for(let j = 0 ; j < n ; j++) { if(i === j) answer[i][j] = 1; answer[i][j] = 0; } } return answer; } 위의 문제는 기초 문제라 간단하게 풀었지만 2차원 배열 관련 문제를 풀 때 new Array().fill() 이런 식으로 푸는 경우가 왕왕 있다. 아래 블로그를 요약하자면 얕은 복사로 값이 중복되는 newArray()...
1. 배열(Array) - 여러 개의 값을 순차적으로 나열한 자료구조 - 배열이 가지고 있는 값을 요소(element)라 부르고 index를 통해 접근할 수 있다. ➡️ 수행 시간 : O(1) - 요소의 개수(= 배열의 길이)를 나타내는 length 프로퍼티를 가지고 있다. - 컴퓨터의 메인 메모리에서 배열의 공간은 연속적으로 할당된다. - 캐시 히트 가능성(요청한 데이터가 캐시에 존재하는 경우)이 높고, 조회가 빠르지만 배열의 크기를 미리 지정해야 하는 것이 일반적이므로 데이터 추가, 삭제에 한계가 존재한다. - 자바스크립트의 배열은 동적 배열로 배열의 용량이 가득차면 자동으로 크기를 증가한다. - 배열 또는 스택(stack)의 기능이 필요할 때 사용할 수 있다(큐(queue)의 기능은 X) // 1차..
let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); // input = [7, 'abba', 'summuus', 'xabba', 'xabbay', 'comcom', 'comwwmoc', 'comwwtmoc']; let number = Number(input[0]); for(let i = 1 ; i
// 백준 11509번 풍선 맞추기 // 어떤 예제에서 아래 풀이가 틀렸을까? let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); let balloons = Number(input[0]); let hegiht = input[1].split(" ").map(Number); let arrow = 1; for(let i = 0 ; i < balloons - 1 ; i++) { if(height[i] - 1 === height[i + 1]) { continue; } else { arrow++; } } console.log(arrow); 1. BigInt * Number 원시 값이 안정적으로 나타낼 수 있..
1. 2차원 배열 정렬 let arr = [[1, 4], [3, 5], [0, 6], [5, 7], [4, 8]]; // 오름차순 정렬 arr.sort((a, b) => { if(a[1] > b[1]) return 1; if(a[1] { if(a[1] b[1]) return -1; }); // [[4, 8], [5, 7], [0, 6], [3, 5], [1, 4]]; * 주의할 점은 배열을 복사한 것이 아니라면 sort()를 사용할 때 원본 배열이 정렬된다.
1. parseInt(string [, radix]) - 문자열 인자를 파싱하여 특정 진수의 정수를 반환한다. - 문자열 뿐만 아니라 숫자, 배열을 넣을 수 있다(문자열이 아닐 경우 toString 추상 연상을 사용하여 문자열로 변환한다.) - 배열을 넣었을 경우 첫번째 요소만 반환된다. - radix는 옵셔널(optional)로 문자열의 진수를 나타내는 2 ~ 36까지의 정수이다. - 숫자형이 아닌 경우 숫자형으로 변환한다. - radix가 radix < 2, 36 < radix 인 경우, 문자를 숫자로 변환할 수 없는 경우 NaN를 반환한다. console.log(parseInt('077')); console.log(parseInt('0xFF', 16)); // 255 console.log(parse..