본문 바로가기
Coding Test/JavaScript

[Javascript] (백준 2839) 설탕 배달

by Chaedie 2022. 6. 28.
728x90

[Javascript] (백준 2839) 설탕 배달

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().trim().split('\n');

//* 인풋 (커스텀)
const n = +input;
//* 함수 콜 (고정)
let answer = solution(n);
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);

//* 로직함수
function solution(n) {
  let count = 0;
  while (n >= 0) {
    if (n % 5 === 0) {
      count += n / 5;
      return count;
    }

    n -= 3;
    count++;
  }

  return -1;
}

배운 점, 느낀 점

🚨 로직이 분명 맞는데 자꾸 틀려서 한시간을 날렸네요.

원인은 백준에서의 input에 10 이런식으로 한라인만 들어오는게 아니라, 10 \n 이런식으로 개행문자가 들어와서 “맞왜틀”의 연속이었습니다. 하…. 진짜 쓸데없는 걸로 시간날리니까 욕이 절로 나오네요.

여러분은 input받을 때 꼭 trim() 하십쇼.

백준을 js로 풀면 input이 진짜 열받네요 ㅋㅋ


그리디로도 풀 수 있지만, DP로도 푸는 풀이가 있더라구요. 이 문제로 DP 공부해야겠습니다. 점화식은 진짜 간단하던대… DP식 발상을 많이 연습해야겠어요.

댓글