언젠가는 펼쳐 볼 아카이브

[BOJ] 14215번 - 세 막대 본문

IT/Baekjoon Oline Judge

[BOJ] 14215번 - 세 막대

개발자희망생고롸파덕 2023. 9. 11. 19:32

사용언어 : javascript - node.js

 

#문제 

#접근방법 

삼각형에서 제일 긴 변의 길이가 나머지 두 변의 길이보다 작으면 삼각형이 된다.

만약에 위의 조건을 만족하지 않을 경우, 막대 길이를 늘리거나 줄여서 가장 큰 둘레를 구해야한다

그럼 얼마나 줄이고 얼마나 늘려야하나..? 고민해봤는데 제일 큰 변을 제외한 나머지 두 변의 길이의 합보다 -1만 작으면 최대 둘레가 된다. 굿.

 

#제출코드

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const arr = fs
  .readFileSync(filePath)
  .toString()
  .trim()
  .split(' ')
  .map((item) => +item);

console.log(solution(arr));

function solution(arr) {
  let answer = 0;
  arr.sort((a, b) => a - b);

  const a = arr[0];
  const b = arr[1];
  const c = arr[2];

  if (c < a + b) {
    answer = a + b + c;
  } else {
    answer = (a + b) * 2 - 1;
  }

  return answer;
}