[백준/골드5] 용액 합성하기 (javascript)

주영·2023년 12월 24일

백준 골드

목록 보기
3/35

문제 개요

문제: 용액 합성하기

분류: 두 포인터

난이도: 골드5

문제 풀이

배열의 왼쪽 끝과 오른쪽 끝에 포인터를 두어 두 포인터가 가리키는 특성값의 합이 음수이면 왼쪽 포인터를 오른쪽으로, 양수이면 오른쪽 포인터를 왼쪽으로 옮기며 0에 가장 가까운 특성값의 합을 구한다.

코드

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
let [N, A] = fs.readFileSync(filePath).toString().trim().split("\n");

let answer = Infinity;
let left = 0;
let right = +N - 1;

A = A.split(" ").map(Number);

while (left < right) {
  let temp = A[left] + A[right];
  if (Math.abs(temp) < Math.abs(answer)) answer = temp;

  if (temp < 0) left++;
  else right--;
}

console.log(answer);
profile
프론트엔드 개발자

0개의 댓글