백준 19939번 Node.js 풀이

버건디·2024년 1월 22일
0

백준

목록 보기
69/75
post-thumbnail

문제 링크


- 내 풀이

const fs = require("fs");
const input = fs
  .readFileSync("/dev/stdin")
  .toString()
  .trim()
  .split(" ")
  .map(Number);

const [ball, team] = input;

let sum = 0;

for (let i = 1; i <= team; i++) {
  sum += i;
}

if (sum > ball) {
  console.log(-1);
} else {
  if (ball % sum === 0) {
    console.log(team - 1);
  } else {
    console.log(team);
  }
}

만약 ball이 15이고 team이 5라면, 1 2 3 4 5

만약 ball이 16이고 team이 5라면, 1 2 3 4 6

만약 ball이 17이고 team이 5라면, 1 2 3 5 6

가 된다.

즉 공의 갯수 차이는 team 갯수이거나, team 에서 1인 뺀 값이다.

처음에는 해당 길이만큼 배열을 만들어주고, 1씩 더해주면 값을 최소한으로 할수 있지 않나? 생각했었지만, 서로의 값이 전부 다 달라야하기때문에 1부터 차근차근 더해주는것이 결국 최소의 차이를 만드는것이다.

profile
https://brgndy.me/ 로 옮기는 중입니다 :)

0개의 댓글