728x90
반응형
값 입력받는 방법
1. 표준입력받기 readline 모듈
2. fs모듈
난 vscode로 테스트하고 백준에 제출중이기 때문에 2번은 경로문제가 발생한다.
readline 모듈 사용하여 값 입력받기
JS의 내장 모듈인 'readline' 모듈을 사용할 것이다.
const readline = require('readline');
// 인터페이스 객체 생성.
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
처음 가장 기본이 되는 코드이다.
이후에는 어떤값을 어떻게 입력받느냐에 따라 코드가 변경된다.
가장 기본이 되는 readline메서드는 line과 close다.
- 값 하나 입력 받기
- 정수 두개 입력 받기
- 배열의 크기 N을 입력 받고, N개 정수 입력 받기
1. 값 하나 입력 받기
let input;
rl.on("line",function(line){
//line을 통해 사용자가 입력한 문자열이 들어온다.
console.log(`print input string ${line}`);
input = line;
//정수형태는 parseInt로 형변환
console.log(`print input number ${input}`);
input = parseInt(line);
//한줄 받고 입력 종료하기
rl.close();
}).on("close",function(){
//개발 로직 작성
//함수이용
solution(input);
//프로세스 종료
process.exit();
});
마지막 r1.close()가 무한이 입력을 받는지 아닌지 결정한다.
2.정수 두개 입력받기
let input =[];
rl.on("line", function(line){
input = line.split(' ').map((el)=> parseInt(el));
//한줄 받고 입력 종료하기
rl.close();
//input.push(line);//한줄씩 입력받고 무한으로 입력받음
//ctrl+D로 종료
}).on("close",function(){
let A = input[0];
let B = input[1];
console.log(A+B);
})
이걸로 백준 1000번 문제 풀 수 있다.(A+B)
두 정수가 공백을 기준으로 입력되기 때문에, split(' ') 넣기.
map(...)은 리스트 자료형인 line.split(' ')의 각 원소에 콜백 함수를 적용해주는 역할을 한다.(???)
3.배열의 크기 N을 입력 받고, N개 정수 입력 받기
let N;
// 몇번째 라인을 입력 받는지를 저장하는 변수
let count = 0;
rl.on("line", function(line){
if(count == 0)
N = Number(line.trim());
else if(count == 1){
get_Min_Max(line.trim());
rl.close();
}
count++;
})
function get_Min_Max(input){
let arr = input.split(' ').map((num) => parseInt(num));
console.log(arr);
// min, max 출력
let min = Math.min.apply(null,arr);
let max = Math.max.apply(null,arr);
console.log('max:',max,'min:',min);
}
백준 10818번 최소, 최대 문제 푸는법
728x90
반응형
'프로그래밍' 카테고리의 다른 글
[javascript]var, let, const 차이점 (0) | 2021.12.19 |
---|---|
[백준]문제 2588 javascript (0) | 2021.12.19 |
신입개발자 기술면접 질문 최종정리(SQL) (0) | 2021.12.13 |
신입개발자 기술면접 질문 정리(JAVA 관련) (0) | 2021.12.13 |
스프링부트 설치 및 초반셋팅 (0) | 2021.11.26 |