๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm/๋ฐฑ์ค€(BOJ)

[ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript), Node.js ] ๋ฐฑ์ค€ 2525 - ์˜ค๋ธ ์‹œ๊ณ„

by YWTechIT 2021. 8. 6.
728x90

๐Ÿ“ ๋ฐฑ์ค€ 2525 - ์˜ค๋ธ ์‹œ๊ณ„

๋ฐฑ์ค€ 2525 - ์˜ค๋ธ ์‹œ๊ณ„


๐Ÿ’ก ๋‚˜์˜ ํ’€์ด

ํ˜„์žฌ ์‹œ๊ฐ„์—์„œ ์กฐ๋ฆฌ์‹œ๊ฐ„๋งŒํผ ์ง€๋‚˜๋ฉด ๋ช‡ ์‹œ ๋ช‡ ๋ถ„์ด ๋˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ๋ฌธ์  ๋ฐ ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ํ’€์—ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ˆ๊นŒ ๊ฑฐ์˜ 50% ์งง๊ฒŒ ์จ์„œ ๋†€๋ผ์› ๋‹ค. ๋‚˜๋Š” ์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋‹ค.

 

  1. ์กฐ๋ฆฌ์— ๊ฑธ๋ฆฌ๋Š”์‹œ๊ฐ„(cookTime)์„ 60์œผ๋กœ ๋‚˜๋ˆˆ ๋ชซ(/)์€ ํ˜„์žฌ์‹œ๊ฐ„(curHour)์— ๋”ํ•˜๊ณ , ๋‚˜๋จธ์ง€(%)๋Š” ํ˜„์žฌ๋ถ„(curMin)์— ๋”ํ•œ๋‹ค.
  2. while๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ์‹œ๊ฐ„์ด 24๋ณด๋‹ค ์ž‘๊ณ  ํ˜„์žฌ๋ถ„์ด 60๋ณด๋‹ค ์ž‘์„ ๋•Œ while ๋ฌธ์„ ํƒˆ์ถœํ•˜๋„๋ก ์„ค์ •ํ–ˆ๋‹ค.
  3. ์‹œ๊ฐ„, ๋ถ„ ์กฐ๊ฑด์„ ๋”ฐ๋กœ๋”ฐ๋กœ ๊ฑธ์–ด์คฌ๋‹ค.

 

๊ทธ๋Ÿฐ๋ฐ ์ด๋ ‡๊ฒŒ ์•ˆ ํ•ด๋„, ๋งค ๊ณ„์‚ฐ๋งˆ๋‹ค hour๋ฅผ ๋น„๊ตํ•  ํ•„์š” ์—†์ด while๋ฌธ์— min๋งŒ ๋„ฃ์œผ๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, min์ด 60๋ณด๋‹ค ์ž‘์„ ๋•Œ ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ•˜๊ฒŒ ๋งŒ๋“ค๊ณ , min์ด 60๊ณผ ๊ฐ™๊ฑฐ๋‚˜ ํฌ๋‹ค๋ฉด hour += 1, min -= 60์„ ํ•ด์ค€๋‹ค. ๋ฐ˜๋ณต๋ฌธ์„ ํƒˆ์ถœํ–ˆ๋‹ค๋ฉด hour์€ 23๋ณด๋‹ค ํด ์ˆ˜ ์—†์œผ๋ฏ€๋กœ hour %= 24์˜ ์‹์„ ๋„ฃ์–ด์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋ฐ˜์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ์‹œ๊ฐ„ ๊ด€๋ จํ•œ ๋ฌธ์ œ๋Š” ์ด๋ ‡๊ฒŒ ํ’€์–ด์•ผ ํ•œ๋‹ค๋Š” ํ๋ฆ„์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ๊ฒ ๋‹ค.

 

// ๋‚˜์˜ ์ฝ”๋“œ
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split("\n");

let curHour = input[0].split(" ")[0];
let curMin = input[0].split(" ")[1];
let cookTime = input[1];

solution(+curHour, +curMin, +cookTime);

function solution(doneHour, doneMin, cookTime) {
  doneHour += parseInt(cookTime / 60);
  doneMin += cookTime % 60;

  while (true) {
    if (doneHour < 24 && doneMin < 60) {
      break;
    }

    if (doneHour >= 24) {
      doneHour -= 24;
    } else {
      doneMin -= 60;
      doneHour += 1;
    }
  }
  console.log(doneHour, doneMin);
}

 

// ์ตœ์ ํ™” ์ฝ”๋“œ
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let input = fs.readFileSync(filePath).toString().split("\n");

let curHour = input[0].split(" ")[0];
let curMin = input[0].split(" ")[1];
let cookTime = input[1];

solution(+curHour, +curMin, +cookTime);

function solution(doneHour, doneMin, cookTime) {
    doneMin += cookTime;

    while (doneMin >= 60){
        doneMin -= 60;
        doneHour += 1;
    }

    doneHour %= 24;
    console.log(doneHour, doneMin);
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€