python javascript 입출력 (알고리즘 문제용)

    

 https://help.acmicpc.net/language/info



# 파이썬 알고리즘 문제 빠른 입출력


```python

import sys

#한줄씩

n=sys.stdin.readline().rstrip()

N,S=map(int,sys.stdin.readline().rstrip().split())


# 여러줄 한번에

input_str = sys.stdin.read().rstrip().split("\n"

```


---

# js 백준


```javascript

var fs = require('fs');

var input = fs.readFileSync('/dev/stdin').toString().split(' ');

var a = parseInt(input[0]);

var b = parseInt(input[1]);

console.log(a+b);

```


eof 예시 10951

```javascript

var fs = require('fs');

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

#전체 입력으로 해결하는데 trimEnd로 끝에 공백제거

for (let i=0;i<input.length;i++){

    let [a,b]=input[i].split(" ")

    console.log(Number(a)+Number(b))

}

```


---

JavaScript로 코딩 테스트를 할 때는 입출력 방식이 플랫폼마다 다를 수 있습니다. 그러나 일반적으로 사용하는 두 가지 환경에 맞춰 설명하겠습니다.


1. **Node.js 환경**:

   - 대부분의 코딩 테스트 플랫폼에서 JavaScript를 실행할 때는 Node.js 환경을 사용합니다. Node.js에서 표준 입력/출력을 처리하는 방법을 알아봅니다.


2. **브라우저 환경**:

   - 브라우저에서는 기본적으로 `prompt()`나 `alert()` 같은 함수를 사용할 수 있지만, 코딩 테스트 플랫폼에서는 이런 방식보다는 Node.js 환경을 주로 사용하므로 이에 맞춘 설명을 드립니다.


---


### Node.js 환경에서 빠른 입출력 처리


1. **입력 처리**:

   - `readline` 모듈을 이용해 입력을 처리할 수 있습니다. 하지만 대량의 데이터를 효율적으로 처리하려면 `stdin`을 활용해 데이터를 한꺼번에 받는 것이 더 빠릅니다.


   #### `readline` 모듈로 입력 처리:

   ```javascript

   const readline = require('readline');

   const rl = readline.createInterface({

     input: process.stdin,

     output: process.stdout

   });


   rl.on('line', (line) => {

     // 한 줄 입력 받을 때마다 처리하는 부분

     console.log(line);

     rl.close();

   });

   ```


   #### `stdin`으로 입력 처리 (대량 데이터 처리 시):

   ```javascript

   let input = '';

   process.stdin.on('data', function (data) {

     input += data;

   });


   process.stdin.on('end', function () {

     // 입력 받은 내용을 줄 단위로 분할

     const lines = input.split('\n');

     // lines 배열을 처리

     console.log(lines);

   });

   ```


2. **출력 처리**:

   - 출력은 `console.log()`를 주로 사용합니다. Node.js에서는 성능 문제 없이 적합합니다. 하지만 매우 많은 데이터를 출력해야 할 때는 `process.stdout.write()`를 사용하여 더 빠르게 처리할 수 있습니다.


   #### `console.log()` 예시:

   ```javascript

   console.log('Hello, World!');

   ```


   #### `process.stdout.write()` 예시:

   ```javascript

   process.stdout.write('Hello, World!\n');

   ```


---


### 입출력 예시: 간단한 덧셈 문제


입력으로 두 수를 받고 그 합을 출력하는 문제를 Node.js 환경에서 처리하는 예시입니다.


```javascript

const readline = require('readline');

const rl = readline.createInterface({

  input: process.stdin,

  output: process.stdout

});


rl.on('line', (line) => {

  const [a, b] = line.split(' ').map(Number);

  console.log(a + b);

  rl.close();

});

```


또는 대량의 입력을 한 번에 처리하고 출력하는 방식:


```javascript

let input = '';

process.stdin.on('data', function (data) {

  input += data;

});


process.stdin.on('end', function () {

  const lines = input.split('\n');

  for (let line of lines) {

    const [a, b] = line.split(' ').map(Number);

    if (!isNaN(a) && !isNaN(b)) {

      console.log(a + b);

    }

  }

});

```


---


### 요약

- **입력**: `readline` 모듈로 한 줄씩 입력을 받거나, 대량 데이터를 처리할 때는 `stdin`으로 한 번에 읽습니다.

- **출력**: `console.log()`를 주로 사용하지만, 많은 데이터를 출력할 때는 `process.stdout.write()`로 더 빠르게 처리할 수 있습니다.


코딩 테스트 플랫폼마다 입출력 방식이 다를 수 있으니, 사용하기 전에 해당 플랫폼의 입출력 예시를 확인하는 것이 좋습니다.





댓글

이 블로그의 인기 게시물

js 스트링에서 요소 갯수 세기

STUDY

javascript cheatsheet