-
코딩테스트를 위한 JavaScript 핵심 문법코딩테스트(자바스크립트) 2023. 5. 11. 22:32
# 표준 출력
일반적인 알고리즘 문제를 풀 때에는 표준 출력으로 console.log()를 이용합니다.
// 단순한 문자열을 출력할 때 console.log("Hello World!"); result = 35; // 템플릿 리터럴을 사용해 문자열 내부에 변수를 포함합니다. (백틱 문자 사용) console.log(`정답은 ${result}입니다.`);
# 기본적인 사칙 연산 기능
a = 7; b = 3; console.log(a + b); console.log(a - b); console.log(a * b); console.log(parseInt(a / b)); // 몫만 남기기 console.log(a % b);
# 빠른 출력
JavaScript로 코딩 테스트 문제를 풀 때에는 출력 과정만으로 시간 초과가 뜰 때가 종종 있습니다. 출력 시간을 단축하기 위해 다음과 같은 방법을 유용하게 사용할 수 있습니다.
let answer = ''; /* 여러 출력 결과를 한 줄에 하나씩 출력할 때 매번 console.log()를 실행하지 않고, 하나의 문자열에 결과를 저장해서 한꺼번에 출력하는 것이 대개 더 빠르게 수행됩니다. */ for (let i = 0; i <= 100; i++) { answer += i + '\n'; // 문자열로 변환하여 기록 } console.log(answer);
# fs 모듈
입력 데이터가 텍스트 파일 형태로 주어지는 경우, 파일 시스템 모듈을 사용합니다. 예를 들어 /dev/stdin 파일에 적힌 텍스트를 읽어 오는 경우, 다음과 같이 코드를 작성합니다.
// readline 모듈보다는 fs를 이용해 파일 전체를 읽어 들여 처리하기 let fs = require('fs'); let input = fs.readFileSync('/dev/stdin').toString().split('\n'); console.log(input);
# readline 모듈
한 줄씩 입력받아 처리하여 정답을 출력할 때는 readline 모듈을 사용할 수 있습니다.
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(); });
# 조건문
조건에 따라서 프로그램의 흐름을 결정할 때 사용할 수 있는 문법입니다.
/* condition: 참 혹은 거짓을 반환하는 조건식 statement1: condition1이 참일 때 실행되는 구문 statement2: condition1이 거짓이고, condition2가 참일 때 실행되는 구문 statement3: condition1과 condition2가 거짓이고, condition3이 참일 때 실행되는 구문 statementN: 앞의 모든 조건문이 거짓일 때 실행되는 구문 */ if (condition1){ statement1 } else if (condition2) { statement2 } else if (condition3) { statement3 ... else { statementN }
# for 반복문
조건에 따라서 특정한 코드를 반복하고자 할 때 사용할 수 있는 코드입니다.
/* - 초기문이 존재한다면 초기문이 먼저 실행됩니다. - 조건문이 참이라면 블록 내부 코드가 실행되고, 거짓이면 반복문이 종료됩니다. - 블록 내부 코드가 실행된 뒤에 증감문이 실행됩니다. */ for (초기문; 조건문; 증감문) { // statements } // 1부터 100까지의 합 계산 let summary = 0; for (let i = 1; i <= 100; i++) { summary += 1; } console.log(summary);
# while 반복문
조건에 따라서 특정한 코드를 반복하고자 할 때 사용할 수 있는 코드입니다.
/* - while문은 조건문이 참일 때 실행되는 반복문입니다. - 블록 내부의 코드가 실행되기 전에 참 혹은 거짓을 판단합니다. */ while (조건문) { // 실행되는 코드 부분 }
# Number와 String 형태 변환
수 데이터와 문자열 데이터 간의 상호 변환이 가능합니다.
/* String -> Int */ let a = "777"; let b = Number(a); console.log(b); // 777 /* Int -> String */ let a = 777; let b = String(a); console.log(b); /// "777"
# Array.prototype.reduce()
배열의 모든 원소에 대해 특정한 연산을 순차적으로 적용할 때 reduce()를 사용합니다.
/* reduce() 메서드는 배열의 각 요소에 대해 reducer 함수를 실행한 뒤에 하나의 결과를 반환합니다. reduce의 형태: (accumulator, currentValue) => (반환값) - 배열의 각 원소를 하나씩 확인하며, 각 원소는 currentValue에 해당합니다. - 반환값은 그 이후의 원소에 대하여 accumulator에 저장됩니다. */ let data = [5. 2. 9. 8. 4]; // minValue 구하기 예제 let minValue = data.reduce((a, b) => Math.min(a, b)); console.log(minValue); // 2 // 원소의 합계 구하기 예제 let summary = data.reduce((a, b) => a + b); console.log(summary); // 28
# 배열 초기화 방법
알고리즘 문제를 풀 때 자주 사용되는 배열 초기화 방식은 다음과 같습니다.
// 직접 값을 설정하며 초기화 let arr = [8, 1, 4, 5, 7]; // 길이가 5이고 모든 원소의 값이 0인 배열 초기화 let arr = new Array(5).fill(0);
# 집합 자료형
특정한 원소의 등장 여부를 파악할 때 집합 자료형을 효과적으로 사용할 수 있습니다.
int mySet = new Set(); // 집합 객체 생성 // 여러 개의 원소 삽입 mySet.add(3); mySet.add(5); mySet.add(7); mySet.add(3); console.log(`원소의 개수: ${mySet.size}`); console.log(`원소 7을 포함하고 있는가? ${mySet.has(7)}`); // 원소 5 제거 mySet.delee(5); // 원소를 하나씩 출력 for (let item of mySet) console.log(item);
# 소수점 아래 특정 자리에서 반올림
실수를 출력할 때 소수점 아래 특정 자리에서 반올림할 수 있습니다.
// 특정 실수에 대하여 toFixed()를 이용해 소수점 아래 둘째 자리까지 출력 let x = 123.456; console.log(x.toFixed(2));
# 이스케이프 시퀀스
예약 문자 혹은 특수 문자를 출력하기 위하여 이스케이프 시퀀스를 사용할 수 있습니다.
시퀀스 문자 \t 탭 \\ 역 슬래시 \" 큰 따옴표 \' 작은 따음표 console.log("그는 \"비범함\"을 보였다.");
참조 | 패스트캠퍼스 UPSKILL: JavaScript 코딩테스트 131개 예제 & CS 지식으로 끝내기
'코딩테스트(자바스크립트)' 카테고리의 다른 글
[정렬 알고리즘] 삽입 정렬 (0) 2023.05.26 [정렬 알고리즘] 버블 정렬 (0) 2023.05.26 [정렬 알고리즘] 선택 정렬 (0) 2023.05.26 [자료구조] 배열(Array)과 리스트(List) (0) 2023.05.24 [백준 1000번] A+B (0) 2023.05.13