dogo_ day

JavaScript 코딩테스트 1. 개요 및 입출력 본문

IT/코딩테스트_

JavaScript 코딩테스트 1. 개요 및 입출력

dogo_ 2023. 4. 28. 00:37

🔅코딩테스트 JavaScript 개요

코딩테스트에서는 알고리즘 문제가 나온다.

알고리즘 문제에서는 입출력 양식이 주어진다.

그리고 적절한 알고리즘을 사용하여 문제에서 요구하는 형식으로 출력해야한다.

 

JavaScript 기본 출력은 표준 출력인 console.log()를 사용한다.

// 단순 문자열 출력
console.log('Hello World');

let result = 'doyun'
// 문자열 내부에 변수를 포함 (백틱 사용)
console.log(`이름은 ${result}입니다.`);

 

JavaScript는 기본적인 사칙 연산이 가능하다.

+ - * / % 등 그리고 몫만 남기기위해서는 parseInt를 사용하면 된다.

 

여러줄의 출력을 할 때가 있다.

console.log('...');
console.log('...');
console.log('...');
console.log('...');
console.log('...');

이렇게 출력을 한다면 출력 과정에서만 시간 초과를 받을 수 있다.

메모리를 많이 사용하는 대신 시간을 절약 할 수 있는 방법이 존재한다.

 

🌈결과값을 문자열에 계속 담아서 한번만 출력하는 방법이다.

백틱을 이용하여 \n(줄바꿈)을 사용하였다.

let result = '';

for(let i = 0; i < 10; i++) {
	result += `${i+1}번째\n`
}

console.log(result);

 

🌈 입력데이터가 텍스트 파일 형태로 주어진다면 어떻게 해야할까: fs 모듈

텍스트 파일 형태로 주어질 경우 파일 시스템 모듈을 사용해야한다.

예를 들어 /dev/stdin 파일에 적힌 텍스트를 읽어봐야한다면 fs 모듈을 이용해서 파일을 읽은 후 줄바꿈을 기준으로 구분해서 리스트로 변환하면 된다. ( readline 방식도 존재하지만 한꺼번에 읽어오는 형식인 fs 모듈이 속도가 보통은 빠르다. )

let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');

 

🌈 데이터를 직접 입력하여 처리해야한다면 어떻게 해야할까: readline 모듈

// CASE 1
const rl = require('readline').createInterface({
	input: process.stdin,
    output: process.stdout
});

let input = [];
rl.on('line', line => {
	input.push(line);
}).on('close', close => {
	console.log(input);
	process.exit();
});

// CASE 2
const readline = require('readline');

(async () => {
	let rl = readline.createInterface({ input: process.stdin });
	
	for await (const line of rl) {
		console.log('Hello Doyun, Your input is', line);
		rl.close();
	}
	process.exit();
})();

 

참고자료

패스트캠퍼스 - JavaScript 코딩테스트 131개 예재 & CS지식으로 끝내기