https://www.acmicpc.net/problem/2525
2022.08.11
2525번 오븐 시계
문제
* 훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.
* 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다.
* 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)
풀이
//입력값이 [14 30\n20] 이기 때문에 첫 줄과 두번째 줄을 \n으로 나누고 첫 번째주를 다시 띄어쓰기로 나눈다
const fs = require('fs');
const inputData = fs.readFileSync(0,'utf8').toString().split("\n");
const times = inputData[0].split(" ");
const cookingTimes = parseInt(inputData[1]);
const H = parseInt(times[0]);
const M = parseInt(times[1]);
solution(H,M,cookingTimes);
function solution(H,M,cookingTimes){
const result = H*60+M+cookingTimes ; //현재 시각과 걸리는 시간을 더해 분단위로 나타냄.
const resultH = Math.floor(result/60); //분단위 시각을 60으로 나눠 내림하여 시를 나타냄.
const resultM = result%60;// 분단위 시각을 60을 나눈 나머지로 분을 나타냄.
if (resultH >= 24){ // 만약 resultH가 24시간이 넘어가면 -24시간을 해주어 24시가 초과되는 시간을 방지함.
console.log(resultH-24,resultM);
}else
console.log(resultH,resultM);
}
삽질
solution(H,M,cookingTimes);
function solution(H,M,cookingTimes){
if (M+cookingTimes >= 60){
console.log(H+1,M+cookingTimes-60);
} else if(M+cookingTimes < 60) {
console.log(H,M+cookingTimes);
}
}
cookingTimes가 120분이 넘어가면 H+2를 해야줘야되는데 생각 못함.
너무 단순하게 생각함.
'algorithm > 백준' 카테고리의 다른 글
[JS] 10926번 ??! (0) | 2022.08.12 |
---|---|
[JS] 10869 사칙연산 (0) | 2022.08.12 |
[JS] 1000 1001 10998 1008번 입출력방식/사칙연산 (0) | 2022.08.12 |
[JS] 2480번 주사위 세개 (0) | 2022.08.11 |
[JS]2884번 알람시계 (0) | 2022.08.10 |
댓글