목록전체 글 (53)
동그란 도그린
✔ LIS (최장 증가 부분 수열) Longest Increasing Subsequence의 약자 주어진 수열에서 오름차순으로 정렬된 가장 긴 부분 수열을 찾는 알고리즘 예를 들어, { 4, 6, 4, 8, 3, 5 }라는 수열이 있을 때 만들 수 있는 증가하는 부분 수열은 { 4, 6 ,8 }, { 3, 5 }, { 4, 5 } 등 다양하지만, LIS는 가장 긴 증가 부분 수열인 { 4, 6, 8 }을 찾는 것이다.
📍 원시 타입 변경 불가능한 값 (읽기 전용 값) 원시 값을 변수에 할당하면 변수에는 실제 값이 저장됨 원시 값을 갖는 변수를 다른 변수에 할당하면 원본의 원시 값이 복사되어 전달됨 (값에 의한 전달) 원시 값을 할당한 변수에 새로운 원시 값을 재할당하면, 새로운 메모리 공간을 확보하고 재할당한 원시 값을 저장한 후, 변수는 새롭게 재할당한 원시 값을 가리킴 원시 값을 할당한 변수는 재할당 이외에 변수 값을 변경할 수 있는 방법이 없음 문자열 문자열은 0개 이상의 문자로 이루어진 집합 1개의 문자는 2바이트의 메모리 공간에 저장됨 문자열은 유사 배열 객체이자 이터러블이므로 배열과 유사하게 각 문자에 접근 가능 🔅 유사 배열 객체 : 배열처럼 인덱스로 프로퍼티 값에 접근할 수 있고, length 프로퍼티를..
⏲ 빅오 표기법 가장 빠르게 증가하는 항만 고려하는 표기법 함수의 상한을 나타냄 차수가 가장 큰 항에서 계수를 제외하여 표현 예시) 4*N^3 + 2*N^2 + 100인 알고리즘이 있다면, O(N^3)으로 표현 시간 복잡도 좋음 O(1) 상수 시간 O(logN) 로그 시간 O(N) 선형 시간 O(NlogN) 로그 선형 시간 O(N^2) 이차 시간 O(N^3) 삼차 시간 O(2^n) 지수 시간 시간 복잡도 나쁨
📍 객체 자바스크립트는 객체 기반의 프로그래밍 언어 객체는 원시 값을 제외한 나머지 값(함수, 배열, 정규 표현식 등) 원시 값은 변경 불가능한 값, 객체 값은 변경 가능한 값 객체는 0개 이상의 프로퍼티로 구성된 집합 프로퍼티 프로퍼티는 키와 값으로 구성 모든 값은 프로퍼티가 될 수 있음 프로퍼티 값이 함수이면, 이를 메서드라고 부름 객체는 프로퍼티와 메서드로 구성된 집합체 프로퍼티 : 객체의 상태 메서드 : 프로퍼티를 참조하고 조작할 수 있는 동작 📍 객체 리터럴에 의한 객체 생성 자바스크립트는 프로토타입 기반 객체지향 언어로, 다양한 객체 생성 방법 지원 객체 리터럴 Object 생성자 함수 생성자 함수 Object.create 메서드 클래스(ES6) 객체 리터럴 중괄호 내에 0개 이상의 프로퍼티 ..
📍 타입 변환 타입 변환이란? 기존 원시 값을 사용해 다른 타입의 새로운 원시 값을 생성하는 것 명시적 타입 변환(타입 캐스팅) 개발자가 의도적으로 타입을 변환하는 것 암묵적 타입 변환(타입 강제 변환) 개발자의 의도와는 관계없이 자바스크립트 엔진에 의해 암묵적으로 타입이 변환되는 것 기존 변수 값을 재할당하여 변경하는 것은 아님 때로는 명시적 타입 변환보다 가독성 측면에서 더 좋을 수 있음 📍 암묵적 타입 변환 문자열 타입으로 변환 템플릿 리터럴의 표현식 삽입은 표현식의 평가 결과를 문자열 타입으로 암묵적 타입 변환함 `1 + 1 = ${1+1}` // => "1 + 1 = 2" // 숫자 타입 0 + '' // => "0" // 불리언 타입 true + '' // => "true" // null 타입..
📍 블록문 코드 블록 / 블록이라고 부름 0개 이상의 문을 중괄호로 묶은 것 언제나 문의 종료를 의미하는 자체 종결성 가짐 ⇒ 블록문의 끝에 세미콜론을 붙이지 X 📍 조건문 if … else 문 if 문의 조건식이 불리언 값이 아닌 값으로 평가되면 자바스크립트 엔진에 의해 암묵적으로 불리언 값으로 타입 변환됨 만약 코드 블록 내의 문이 하나뿐이면 중괄호 생략 가능 switch문 default 문은 선택사항 break 문 : 코드 블록에서 탈출하는 역할 🔅 폴스루(fall through) : 평가 결과와 일치하는 case 문으로 실행 흐름이 이동하여 문을 실행한 후 switch 문을 탈출하지 않고 switch 문이 끝날 때까지 이후의 모든 문을 실행하는 경우 📍 반복문 3가지의 반복문 : for문, whi..
📍 산술 연산자 피연산자를 대상으로 수학적 계산을 수행해 새로운 숫자 값을 만듦 산술 연산이 불가능한 경우에는 NaN 반환 이항 산술 연산자 모든 이항 산술 연산자는 부수 효과(피연산자의 값을 변경) X 단항 산술 연산자 증가/감소(++/ --) 연산자는 부수 효과 O 숫자 타입이 아닌 피연산자에 +/- 단항 연산자를 사용하면 피연산자를 숫자 타입으로 변환한 값을 새로 생성해서 반환 ⇒ 부수 효과 X var x = '1'; console.log(+x); // => 1 : 문자열을 숫자로 타입 변환 console.log(x); // => '1' : 부수 효과는 X x = 'Hello'; console.log(+x); // => NaN : 숫자로 타입 변환 불가능하므로 console.log(x); // =>..
원시 타입 객체 타입 숫자 타입 문자열 타입 불리언 타입 undefined 타입 null 타입 심벌 타입 📍 숫자 타입 숫자 타입의 값은 배정밀도 64비트 부동소수점 형식 (모든 수를 실수로 처리) 2진수, 8진수, 16진수를 표현하기 위한 데이터 타입 제공 X ⇒ 값 참조하면 모두 10진수로 해석됨 아래의 3가지 값 표현 가능 Infinity : 양의 무한대 -Infinity : 음의 무한대 NaN : 산술 연산 불가(not-a-number) 자바스크립트는 대소문자 구별 ⇒ NAN, Nan, nan을 값이 아닌 식별자로 해석 📍 문자열 타입 자바스크립트에서 가장 일반적인 문자열 표기법은 ‘작은 따옴표’ 사용하는 것 문자열을 따옴표로 감싸는 이유는 키워드나 식별자 같은 토큰과 구별하기 위함 📍 템플릿 리..