자바스크립트

개념 탐욕법 현재 상황에서 지금 당장 좋은 것만 고르는 방법 현재의 선택이 나중에 미칠 영향에 대해서는 고려하지 않는다 다익스트라 알고리즘 - 엄밀히 말하면 그리디 알고리즘으로 분류 암기가 필요 없음 해법이 정당한지 검증이 필요 그리디와 정렬 알고리즘과 짝을 이뤄 자주 출제됨 ❓문제를 만났는데 바로 문제 유형을 파악할 수 없는 경우 그리디 알고리즘을 의심하고 해법을 고민 그리디로 해결할 수 없다면 → 다이나믹 프로그래밍이나 그래프 알고리즘으로 해결할 수 있는지 고민 예제 3-1 거스름돈 const COIN_TYPES = [500,100,50,10]; let n = 1260; let cnt = 0; for(const coin of COIN_TYPES) { cnt += Math.floor(n/coin); n..
조건문? 주어진 조건식이 참이냐 거짓이냐에 따라 다른 명령을 처리하도록 만든 수행문이다. 조건문은 프로그램이 복잡한 명령을 수행할 수 있게 하므로 유용하다. 조건식? 계산결과가 참(True) 또는 거짓(False)의 값을 갖는 식이다. 비교연산자와 불리언(Boolean)을 이용하여 만들 수 있다. 불리언 Boolean 계산 결과가 `true` 아니면 `false`로 나오는 것을 불리언 데이터타입이라고 한다 * JS 메소드에는 불리언 값을 계산해주는 객체가 있다..!! 비교연산자 JS 에서는 `==`의 비교방식과 `===`의 비교방식이 다르다. `1=='1'` VS `1==='1'` 데이터타입이 다른경우 첫번째 방식은 같다고 판단하고, 두번째 방식은 데이터타입까지 비교해서 다르다고 판단한다. 이외에도 `=..
자바스크립트는 다른 언어의 for문으로 작성해야 할 코드를 메소드를 사용해서 반복해서 탐색할 수 있다는 장점이 있다. 그 전에 반복문을 정리해야, 메소드를 잘 쓸 수 있지 않을까?? 반복적으로 실행해야 할때 코드를 작성한다 종류 for for...in for...of forEach() - Array 메소드 while do...while for let str = ''; for (let i = 0; i < 9; i++) { str = str + i; } 괄호로 감싸고 세미콜론으로 구분한 세 개의 선택식과, 반복을 수행할 문(주로 블럭문)으로 이루어져 있다 for 문 안에 3가지 요소가 꼭 필요하다 `let i = 0;` 변수 let i 를 선언하고, 0으로 할당한다. 반복문 초기값을 설정한다. `i < 9;..
함수를 사용하는 이유? 원하는 시점에서 함수를 재사용할 수 있다는 생산성 증가 측면 함수 기능 단위로 테스트를 실행할 수 있는 테스트 용이성 유지보수성, 코드의 가독성 이러한 장점을 모듈화 라고 한다. * 모듈화? 기능적인 분리를 통해서 다른 프로그램을 개발할 때에도 유지보수와 코드 재사용성을 높여 소프트웨어를 설계하는 기법 utils와 개념이 유사하며, 객체지향을 배웠다면 간단히 이해가 될 것이다 두가지 개념이 사용된다 import : 사용하는 쪽, 함수를 불러옴 export : 내보내는 쪽 표현 방법 함수 선언식 함수 표현식 화살표 함수 함수 선언문 다른 언어들과 유사한 형태를 가지고 있다. function calcRectArea(width, height) { return width * height;..
함수 개념 함수는 프로그래밍 적으로 단일 기능을 만들어내고, 함수들이 모여서 작동하는 프로그램을 만든다고 생각한다 수학적으로 동일한 입력값을 주면 동일한 출력값을 나오게 하는 동작방식을 말한다 어릴때 배웠던 `f(x) = x+1 ` 같은것... 프로그래밍에서도 다르지 않다! 국립특수교육원에서는 함수를 어떤 일을 수행하는 명령들을 하나로 묶어서 이름을 부여하고 필요할 때마다 그 함수를 호출하여 사용할 수 있는 프로그래밍 방법 이라고 정의한다. 함수형 프로그래밍 함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수 효과를 미워하고, 조합성을 강조하는 프로그래밍 패러다임 부수 효과를 미워한다 -> 순수함수를 만든다. 조합성을 강조한다 -> 모듈화 수준을 높인다. 순수함수 -> 오류를 줄이고 안정성을 높인다. 모..
📝 스코프 scope 식별자를 찾을때 자바스크립트에서 확인하는 범위이다. 이를 통해 접근 가능성 = 가시성을 결정한다. 상위스코프는 하위스코프에 접근할 수 있지만, 하위는 상위에 접근할 수 없다. 전역변수, 지역변수의 관계를 판단하는 영역을 말한다. 전역 Global 스코프 프로그램 전체에서 접근할 수 있다. 프로그램이 시작될 때 생성되며 프로그램이 종료될 때까지 유지된다. 데이터 덮어씌우기 가능하다. 전역 스코프에 선언된 변수는 프로그램 어디서든 접근할 수 있다. var globalVariable = 'I am a global variable'; // 전역 변수 function foo() { console.log(globalVariable); // 전역 변수 접근 가능 } foo(); console.l..
자바스크립트의 구동방식 중 하나이다. hoisting? 끌어올리다 hoist+ing. 변수 정보를 수집하는 과정을 이해하기 쉬운 방법으로 대체한 가상의 개념 자바스크립트 엔진이 실제로 끌오올리지는 않지만, 편의상 끌어올린것으로 간주하자는 것! 따라서 코드의 작성순서(위치)가 아니라 코드의 실행 순서(시간)에 의해 형성된다. 호이스팅 문제점을 해결하기 위해 클로저가 사용된다. 📝 호이스팅 코드 실행 전에 식별자들을 해당 스코프 범위의 최상단으로 끌어올려놓은 것처럼 보이는 현상 엔진은 코드가 실행되기 전에 코드 속 이름을 미리 파악한다. * 식별= 함수, 변수, 클래스, import 등 의 선언문 호이스팅 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN JavaScript 호이스팅은 인터프리..
일년전! 연합 동아리 면접볼때, 바닐라 JS 찌끄려봤던 경험으로 ✌️고수✌️;; 라고 적었다가 들어온 질문이다. 그만큼 기본중에 기본인데 깊게 공부하니 꽤 복잡했다.. 단순 재선언 재할당만 다룬다고 생각했는데, 호이스팅과 스포트에 대한 내용도 있어서 처음부터 정리해 보겠다! 📝 변수 선언 데이터를 나중에 사용하기 위해 변수라는 상자 안에 데이터를 할당한다. 데이터는 변수에 할당되는 이 과정에서 컴퓨터의 저장장치인 메모리, 정확히는 주 기억장치인 RAM에 저장된다. - 이부분은 간단하게 컴퓨터의 메모리 공간에 데이터가 저장된다! 고 이해해도 될 것 같다. - 이후에 변수가 해당 데이터에 대한 메모리 위치를 참조하여 사용한다. - 원래는 메모리 주소값을 통해서 데이터에 접근할 수 있었다면, 변수 선언 이후에..
🙌문제설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를..
닷다라다나닷
'자바스크립트' 태그의 글 목록 (3 Page)