특정한 크기의 입력에 대하여 알고리즘의 수행시간 분석 → 알고리즘의 성능을 나타내는 척도
❗️ 동일한 기능을 수행하는 알고리즘이 있다면, 시간 복잡도가 낮을수록 우수하다.
ex) T(n) = 5n^2+3n+30
입력값 n에 대한 실행시간 함수가 존재한다면, 시간복잡도의 최고 차항의 계수만을 표기하여 빅오를 표기할 수 있다.
ex) C=O(1)
an+b=O(n)
an^2+bn+c=O(n^2)
// 단순히 문자열을 출력
console.log('Hello World');
result=35;
// 템플릿 리터럴을 사용해 문자열 내부에 변수를 포함 (백틱 문자 사용)
console.log(`정달은 ${result}입니다.`);
a=7;
b=3;
console.log(a+b); // 10
console.log(a-b); // 4
console.log(a*b); // 21
console.log(parseInt(a/b)); // 몫만 남기기 // 2
console.log(a%b); // 1
let answer='';
/*
여러 출력 결과를 한 줄에 하나씩 출력할 때 매 번 console.log()를 실행하지 않고,
**하나의 문자열에 결과를 저장해서 한꺼번에 출력하는 것이 더 빠르게 수행됨**
*/
for (let i=1; i <= 100; i++){
answer+=i+'\n'; // 문자열로 변환하여 기록
}
console.log(answer);
ex) /dev/stdin 파일에 적힌 텍스트를 읽어오는경우, 다음과 같이 작성
// 기능: 전체 텍스트를 읽어 온 뒤, 줄바꿈 기호를 기준으로 구분하여 리스트로 변환
// readline 모듈보다는 fs를 이용하여 파일 전체를 읽어 들여 처리
let fs=require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
console.log(input);
// [ '5', '40 20 39 29 40' ]
// txt
5
40 20 39 29 40
const rl=require('readline').createInterface({
input: process.stdin,
output: process.stdout
});
let input=[];
rl.on('line', function(line) {
// 콘솔 입력 창에서 줄바꿈(Enter)를 입력할 때마다 호출
input.push(line);
}).on('close', function() {
// 콘솔 입력 창에서 Ctrl+C 혹은 Ctrl+D를 입력하면 호출(입력의 종료)
console.log(input);
process.exit();
});
if (condition1)
statement1
else if (condition2)
statement2
else if (condition3)
statement3
...
else
statementN
for 반복문
for (초기문; 조건문; 증감문){
// statements
}
ex) 1부터 100까지의 합 계산
let sum=0
for (let i=1; i<=100; i++){
sum+=i;
}
console.log(sum);
while 반복문
while (조건문){
// 실해되는 코드 부분
}
: 수(Number) 데이터와 문자열(string) 데이터 간의 상호 변환이 필요
/*
Int -> String
*/
let a = "777";
let b = Number(a);
console.log(b); // 777
/*
Stirng -> Int
*/
let a = 777;
let b = String(a);
console.log(b); // "777"
: 배열의 모든 원소에 대해 특정한 연산을 순차적으로 적용할 때 reduce()를 사용
(accumulator, currentValue) ⇒ (반환값)
ex)
let data=[5,2,9,8,4]
// minValue 구하기 예제
let minValue = data.reduce((a,b)=>Math.min(a,b));
console.log(minValue); // 2
// 원소의 합계 구하기 예제
let sum = data.reduce((a,b) => a+b);
console.log(sum); // 28
let arr = [8, 1, 4, 5, 7]
let arr = new Array(5).fill(0);
: 특정한 원소의 등장 여부를 파악할 때 집합 자료형을 효과적으로 사용 가능
❗️중복된 원소는 포함 안함
add()
: 원소 삽입size
: 원소 크기has()
: 원소 포함 여부delete()
: 원소 제거for (let i of 집합) console.log(i)
: 원소 하나씩 출력let mySet = new Set(); // 집합 객체 생성
// 여러 개의 원소 삽입
mySet.add(3);
mySet.add(5);
console.log(`원소의 개수: ${mySet.size}`);
console.log(`원소 7을 포함하고 있는가? ${mySet.has(7)}`);
// 원소 5 제거
mySet.delete(5);
// 원소 하나씩 출력
for (let item of mySet) console.log(item);
toFixed()
를 이용해 원하는 소수점 까지 출력 가능let x = 123.456;
console.log(x.toFixed(2)); // 소수점 아래 둘째 자리까지 출력
시퀀스 | 문자 |
---|---|
\t | 탭 |
\ | 역 슬래시 |
\” | 큰 따옴표 |
\’ | 작은 따옴표 |
ex) console.log(”그는 \”비범함\”을 보였다.”);