[백준/BOJ] 14215번 세 막대 [Javascript / Node js]

2023. 9. 6. 21:45코딩 테스트 (BOJ)

14215번: 세 막대 (acmicpc.net)

 

14215번: 세 막대

첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다.

www.acmicpc.net

문제해설

삼각형이 되기 위해서는 가장 큰 변의 길이가 나머지 두 변의 길이의 합을 넘지 않아야 한다.

그러니 먼저 삼각형의 가장 길이가 긴 변을 찾고,

(모든 변의 길이의 합 - 가장 큰 변의 길이) 은 가장 큰 변을 제외한 나머지 두 변의 길이의 합이니,

두 변의 길이의 합이 가장 큰 변의 길이보다 짧다면 가장 큰 변의 길이를 (모든 변의 길이의 합 - 가장 큰 변의 길이) - 1 만큼 줄여주면 삼각형으로 만들 수 있다.

 

전체코드
const fs = require("fs");

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

input = input.map((item)=>Number(item));

var max = Math.max(...input);

var sum = input.reduce((acc, currentValue)=> acc + currentValue, 0);

if((sum - max) > max){
    console.log(sum);
}else{
    console.log((sum - max) * 2 - 1);
}

이번 문제를 풀면서 reduce 함수를 사용하는 법을 배웠다. 잊지 말아야지