알고리즘/백준알고리즘

[백준알고리즘] #14924. 폰 노이만과 파리 (by JAVA and node.js)

Jimnya 2022. 4. 29. 10:52
728x90
반응형

백준알고리즘

- Bronze 4 -

 #14924. 폰 노이만과 파리 by JAVA and node.js 

 


 

문제

출처: https://www.acmicpc.net/problem/14924

 

"아니요, 무한급수로 풀었는데요?" ㅋㅋㅋㅋㅋㅋㅋㅋ


 

접근 방법

"간단한 논리"를 코드화 하면 된다.

거리 = 속도*시간, 흔히 거속시라고 외우고 있는 공식을 이용하면 된다.(+ 상대속도의 개념)

기차의 속도 S와 두 기차 사이의 거리 D가 주어지므로 간단히 두 기차가 만날 시간(t)을 구할 수 있다.

t = D / 2S 로 t를 구한 뒤, 파리의 속도 T에 곱하면 파리가 이동한 거리(F = T * t)가 나온다.

 


 

풀이

▶ JAVA

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int s = scan.nextInt(); // 기차의 속도
        int t = scan.nextInt(); // 파리의 속도
        int d = scan.nextInt(); // 두 기차 사이의 거리
        scan.close();

        int time = d / (2 * s); // 두 기차가 충돌할 때까지 걸리는 시간
        int f = t * time;
        System.out.println(f);
    }
}

 

▶ node.js

이 문제는 fs모듈로 풀어도 런타임에러가 발생하지 않았지만 두 가지 방법으로 풀어보았다.

var fs = require('fs');
var input = fs.readFileSync('/dev/stdin').toString().trim().split(' ').map(v => +v);

var s = input[0]; // 기차의 속도
var t = input[1]; // 파리의 속도
var d = input[2]; // 두 기차 사이의 거리
var time = d / (2 * s); // 두 기차가 충돌할 때까지 걸리는 시간
console.log(t * time);
var readline = require('readline');

var rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

// 입력이 한 줄에 이뤄지므로 line
rl.on('line', function(line){
    var input = line.toString().trim().split(' ').map(v => +v);
    
    var s = input[0]; // 기차의 속도
    var t = input[1]; // 파리의 속도
    var d = input[2]; // 두 기차 사이의 거리
    var time = d / (2 * s); // 두 기차가 충돌하는데 걸리는 시간
    
    console.log(t * time);
    
    rl.close();
}).on('close', function(){
    process.exit();
});

 

결과

 


 

 

 

 

 

End.

heisely's 괴발개발 개발일지

 

728x90
반응형