본문 바로가기

전체 글84

Node.js 란? Node.js란? Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임이다. 런타임이란 특정 언어로 만든 프로그램을 실행할 수 있는 환경을 의미한다. 이전까지 Javascript는 웹 브라우저에서만 사용되는 스크립트 언어였지만, 구글의 V8 엔진 출시로 속도 문제가 많이 해결되었고 그 결과로 웹 브라우저 외의 환경에서 Javascript를 실행할 수 있는 프로그램 Node.js이 개발되었다. Node.js에서는 JavaScript으로 OS의 기능에 액세스하는 프로그램을 짤 수 있다. 즉, 브라우저에서 동작하고 있을 때는 되지 않았던 자유로운 파일의 읽기, 쓰기나 네트워크 통신 등의 OS의 기능을 다룰 수 있다. Node.js는 확장성이 있는 네트워크 어플리케이.. 2023. 8. 8.
그리디 알고리즘(Greedy Algorithm) 그리디 알고리즘이란? - 그리디 알고리즘(탐욕법)은 현재 상황에서 지금 당장 좋은 것만 고르는 방법 - 그리디 알고리즘은 문제를 풀기 위한 최소한의 아이디어를 떠올릴 수 있는 능력을 요구 - 일반적인 상황에서는 그리디 알고리즘은 최적의 해를 보장할 수 없을 때가 많음 - 하지만 코테에서의 대부분의 그리디 문제는 탐욕법으로 얻은 해가 최적의 해가 되는 상황에서, 이를 추론할 수 있어야 풀리도록 출제됨 [문제1] 거스름 돈 - 최적의 해를 빠르게 구하기 위해서는 가장 큰 화폐 단위부터 돈을 거슬러 주면 됨 - N원을 거슬러 줘야 할 때, 가장 먼저 500원으로 거슬러 줄 수 있을 만큼 거슬러 줌. 이후에 100원, 50원, 10원짜리 동전을 차례대로 거슬러 줄 수 있을 만큼 거슬러 주면 됨. 가장 큰 화폐 .. 2023. 4. 10.
이분탐색(Binary Search) 이분탐색 알고리즘 이분탐색은 N개의 수가 크기 순서대로 배열되어 있을 때, 특정 k가 몇 번째 위치에 있는지 빠르게 찾는 방법이다. 이해를 위해 예를 들어보자! ex) 1부터 100까지 무작위 숫자 50개를 골라 정렬한 상태로 '13'을 찾아보자! 여기에서 첫 번째가 가르키는 배열의 인덱스를 start로 하고, 마지막 값을 가리키는 배열의 인덱스를 end로 하겠다. 저 숫자를 배열에 넣으면 arr = [1, 2, ..., 26, ..., 28, 57, ...,86, ...,100] 으로 나타낼 수 있고, arr[start] = 1, arr[end] = 100 으로 표기 할 수 있다. 여기서!! 중간 값을 가리키는 배열의 인덱스를 mid로 하면 arr[mid] = 28 이된다. 왜냐하면!! (start +.. 2023. 3. 31.
Rest parameters, Spread syntax 나머지 매개변수, 전개 구문(Rest parameters, Spread syntax) 인수전달 - 함수에 넘겨주는 인수의 개수에는 제한 없음. function showName(name) { // 함수에 넘겨주는 인수의 개수 제한 없음 console.log(name); } showName('Mike'); // 'Mike' showName('Mike', 'Tom'); // 에러는 발생하지 않지만 'Mike'만 찍힘 showName(); // 아무것도 전달하지 않아도 에러 발생하지 않음. undefined 찍힘 함수에 인수를 전달하는 방법(2가지) - arguments - 나머지 매개 변수 사용(여러 장점이 있음!) * 화살표 함수에는 arguments가 없음 1. arguments - 함수로 넘어 온 모든 .. 2023. 3. 14.
JavaScript - Destructuring assignment Destructuring assignment(구조 분해 할당) 란? 구조 분해 할당 구문은 배열이나 객체의 속성을 분해해서 그 값을 변숭 담을 수 있게 하는 표현식 배열 구조 분해 let [x, y] = [1, 2]; console.log(x); // 1 console.log(y); // 2 예제) let users = ['Mike', ' Tom', 'Jane']; let [user1, user2, user3] = users; console.log(user1); // 'Mike' console.log(user2); // 'Tom' console.log(user3); // 'Jane' 예제2) split 이용하기 let users = ["Mike-Tom-Jane"]; let [user1, user2, us.. 2023. 3. 14.
JavaScript - Array methods Array push() : 뒤에 삽입 pop() : 뒤에 삭제 unshift() : 앞에 삽입 shight : 앞에 삭제 arr.splice(n, m) : 특정 요소 지움. n : 시작, m : 개수 let arr = [1, 2, 3, 4, 5]; arr.splice(1, 2); console.log(arr); // [1, 4, 5] arr.splice(n, m, x) : 특정 요소 지우고 추가 let arr = [1, 2, 3, 4, 5]; arr.splice(1, 3, 100, 200); console.log(arr); // [1, 100, 200, 5] let arr = ["나는", "철수", "입니다."]; arr.splice(1, 0, "대한민국", "소방관"); // ["나는", "대한민국",.. 2023. 3. 8.