JavaScript

웹 개발의 필수 언어

동적인 웹 페이지 구현을 위한 핵심 프로그래밍 언어.

Java

객체지향 프로그래밍

안정적이고 확장성 있는 백엔드 개발의 대표 언어.

HTML

웹의 기초

웹 페이지의 구조를 정의하는 마크업 언어.

React

현대적 UI 라이브러리

효율적인 사용자 인터페이스 구축을 위한 JavaScript 라이브러리.

CSS

웹 디자인의 핵심

웹 페이지의 시각적 표현을 담당하는 스타일 언어.

Spring

자바 웹 프레임워크

기업급 애플리케이션 개발을 위한 강력한 프레임워크.

Algorithm/알고리즘 문제

자바스크립트 문제 풀이 기본적인 구조

lamarcK 2025. 5. 2. 10:15
// Node.js의 readline 모듈을 불러옴
const readline = require('readline');

// 즉시 실행 함수 (async를 사용하기 위한 비동기 함수)
(async () => {
    // readline 인터페이스 생성 (표준 입력을 받기 위한 설정)
    let rl = readline.createInterface({ input: process.stdin });
        
    // W와 R 변수를 루프 밖에서 사용하기 위해 미리 선언
    let W, R;    
    
    // 입력 스트림에서 한 줄씩 읽어오는 비동기 루프
    for await (const line of rl) {
        // 입력받은 line을 공백으로 분리하고 숫자로 변환하여 W, R에 할당
        [W, R] = line.split(" ").map(Number);
        
        // 입력 종료
        rl.close();
    }

    // 1RM 계산: W * (1 + R/30) 공식 사용
    const RM = W*(1+R/30);
    
    // 계산 결과를 정수로 변환하여 출력
    console.log(parseInt(RM));
    
    // 프로그램 종료
    process.exit();
})();

 

입력 처리 모듈 호출

// Node.js의 readline 모듈을 불러옴
const readline = require('readline');

node.js 환경을 주로 사용하기 때문에 require를 사용한다.

 

ES Modules 방식 (최신 JavaScript)은 import readline from 'readline'; 방식으로 import 방식을 사용한다.

입력 처리 부분

(async () => {
    // readline 인터페이스 생성 (표준 입력을 받기 위한 설정)
    let rl = readline.createInterface({ input: process.stdin });

기본적으로 문제를 웹에서 처리하기 때문에 로딩 시간이 걸린다. 때문에 async를 사용해서 비동기 작업을 동기작업으로 전환해줘야한다.

let rl:

생성된 인터페이스를 저장할 변수
이 변수를 통해 입력 스트림을 제어할 수 있음

 

readline.createInterface():

readline 모듈의 인터페이스를 생성하는 메서드
입력과 출력을 처리할 수 있는 인터페이스를 만듦

{ input: process.stdin }:

객체 형태의 설정을 전달
process.stdin은 표준 입력 스트림을 의미
즉, 키보드로부터의 입력을 받겠다는 의미

//전체 설정 옵션 예시:
let rl = readline.createInterface({
    input: process.stdin,    // 입력 소스 (키보드)
    output: process.stdout,  // 출력 대상 (콘솔)
    prompt: '> '            // 프롬프트 문자 (선택사항)
});

 

입력 데이터 할당 부분

// 입력 스트림에서 한 줄씩 읽어오는 비동기 루프
for await (const line of rl) {

for of 문을 사용해서 const line에 rl의 데이터를 할당한다.

만역에 여러줄이라면

const readline = require('readline');

(async () => {
    let rl = readline.createInterface({ input: process.stdin });
    let lines = [];  // 보통 이렇게 lines라는 이름으로 배열 생성
    
    for await (const line of rl) {
        lines.push(line);  // 각 줄을 lines 배열에 저장
    }

    // 이제 lines 배열에는 모든 입력이 저장되어 있음
    // lines[0] - 첫 번째 줄
    // lines[1] - 두 번째 줄
    // ...

    // 예시 처리
    const firstLine = lines[0].split(" ").map(Number);
    const secondLine = lines[1].split(" ").map(Number);
})();