
: 알고리즘 문제에서는 적절한(약속된) 입출력 양식이 주어진다.
1. 데이터를 입력 받거나 생성하는 것이다.
2. 이후에 적절한 알고리즘을 사용하여 도출된 정답을 정확한 형식으로 출력한다.
console.log()를 이용한다. let answer = ‘’; //빈 문자열 생성
for (let i = 1; i <= 100; i++) {
answer += i + ‘\n’; //문자열로 변환하여 기록
}
console.log(answer);
//readline 모듈 보다는 fs를 이용해 파일 전체를 읽어들여 처리하기
let fs = require(‘fs’);
let input = fs.readFileSync(‘/dev/stdin’).toString().split(‘\n’);
//let input = fs.readFileSync(‘파일 이름’).toString().split(‘\n’)
console.log(input);
: 조건에 따라서 프로그램의 흐름을 결정할 때 사용할 수 있는 문법이다.
const rl = require(‘readline’).createInterface({ //readline 선언
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on(‘line’, function(line) { // 콘솔 입력 창에서 엔터를 입력할 때마다 호출
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 (초기문; 조건문; 증감문) {
//statement
}
let sum = 0;
for (let i = 1; i <= 100; i++) { //1부터 100까지의 합 계산
sum += I;
}
console.log(sum);
: 조건에 따라서 특정한 코드를 반복하고자 할 때 사용할 수 있는 문법이다.
while(조건문) {
//실행되는 코드 부분
}
: 수(number) 데이터와 문자열(string) 데이터 간의 상호 변환이 필요하다.
//Int to String
let a = ‘777’;
let b = Number(a); //int 777로 변환됨
console.log(b);
//String to Int
let a = 777;
let b = String(a); //string ‘777’로 변환됨
console.log(b);
: 배열의 모든 원소에 대해 특정한 연산을 순차적으로 적용할 때 reduce()를 사용한다.
let data = [5, 2, 3, 7, 4];
//minValue 구하기 예제
let minValue = data.reduce((a, b) => Math.min(a, b));
//처음 reduce()에는 5, 2가 a와 b에 들어감, 반환값으로 2가 반환됨, 다음 reduce()에는 첫번째 반환값인 2와 3이 a와 b에 들어감… 차례로 다음 반환값과 다음 배열값이 들어감
console.log(minValue);
//원소의 합계 구하기 예제
let sum = data.reduce((a, b) => a + b);
//처음 a와 b에는 5와 2가 들어가고, 그 이후에는 a+b라는 반환값과 다음 배열값이 들어감
: 특정한 원소의 등장 여부를 파악할 때 집합 자료형을 효과적으로 사용할 수 있다.
let mySet = new Set(); //집합 객체 생성
//여러 개의 원소 삽입, 단 중복 원소는 하나만 삽입됨
mySet.add(2);
mySet.add(1);
mySet.add(5);
mySet.add(2);
//원소의 개수
console.log(`원소의 개수: ${mySet.size}`);
//특정 원소 존재 여부
console.log(`원소 2를 포함하고 있는가? ${mySet.has(2)}`);
//원소 제거
mySet.delete(1);
//원소를 하나씩 출력
for (let item of mySet) console.log(item);
: 실수를 출력할 때 소수점 아래 특정 자리에서 반올림할 수 있다.
//특정 실수에 대하여 toFixed()를 이용해 소수점 아래 둘째 자리까지 반올림
let x = 123.456;
console.log(x.toFixed(2));
: 예약 문자 혹은 특수 문자를 출력하기 위하여 이스케이프 시권스를 사용할 수 있다.
\t : 탭\\ : 역 슬래시\” : 큰 따옴표 \’ : 작은 따옴표