ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코딩테스트를 위한 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 지식으로 끝내기

Designed by Tistory.