[백준알고리즘] #14065. Gorivo (by JAVA and node.js)
백준알고리즘
- Bronze 4 -
#14065. Gorivo by JAVA and node.js
문제
출처: https://www.acmicpc.net/problem/14065
번역: https://www.acmicpc.net/board/view/85908
글 읽기 - (번역) 14065 - 연료
댓글을 작성하려면 로그인해야 합니다.
www.acmicpc.net
접근 방법
1갤런 = 3.785411784리터
1마일 = 1609.344 미터
입력: 1갤런 당 가는 마일의 수 (= x마일 이라고 가정)
출력: 100km당 몇 L를 소비하는가?
1갤런 당 x마일
=> 3.785411784리터 당 x * 1609.344 미터 이동
=> 1리터 당 x * 1609.344 / 3.785411784 미터 이동
=> 1리터당 (x * 1609.344 / 3.785411784) / 1000 키로미터 이동
=> 100 키로미터 당 소비되는 연료(L)의 양을 y라고 한다면, y = 100 / ((x * 1609.344 / 3.785411784) / 1000)
( 1L : (x * 1609.344 / 3.785411784) / 1000 km = yL : 100km 이용)
풀이
▶ JAVA
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double x = scan.nextDouble(); // 1갤런 당 이동할 수 있는 거리(마일)
scan.close();
double m = x * 1609.344 / 3.785411784; // 1L 당 이동할 수 있는 거리(미터)
System.out.println(100 /(m/1000)); // 100km를 이동하는데 소모되는 연료(L)
}
}
▶ node.js
평소대로 fs.readFileSync('/dev/stdin')을 사용해서 풀었는데 "런타임 에러(EACCES)"가 발생했다.
게시판 공지에 보니 1년전 쯤 fs말고 readline을 사용하라고 한다.
readline에 대한 내용은 아래 블로그 참고
https://velog.io/@exploit017/%EB%B0%B1%EC%A4%80Node.js-Node.js-%EC%9E%85%EB%A0%A5-%EB%B0%9B%EA%B8%B0
[백준/Node.js] Node.js 입력 받기
일반적으로 JS에서는 prompt로 입력을 받았으나, 백준에서는 런타임 오류가 발생한다.검색해보니 Node.js의 realine 모듈을 import해서 사용해야했다.소스 코드는 다음과 같다.console.log(answer);에 의해 입
velog.io
// 기존: var fs = require('fs');
var readline = require('readline');
// 기존: var input = fs.readFileSync('/dev/stdin').toString().trim()....
var rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
// line에 입력값이 들어간다. (문자열반환)
rl.on('line', function(line){
// +line: 문자열로 들어온 입력값을 숫자로 반환
var m = +line * 1609.344 / 3.785411784;
// 출력
console.log(100 / (m / 1000));
rl.close();
}).on("close", function(){
process.exit();
});
결과
End.
heisely's 괴발개발 개발일지