https://www.acmicpc.net/problem/2884
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString().split(' ').map(i=>+i);
let H = input[0] * 60;
let M = input[1];
let MinTime = (H + M - 45);
if(input[0] === 0){
H = 24 * 60;
MinTime = (H + M - 45);
}
console.log(parseInt(MinTime/60), MinTime%60);
시간을 분 단위로 변환해서 합한 값에 45분을 뺀 분 값을 다시 시간과 분으로 변환하여 풀어보았다.
출력되는 값은 원하는 값이 잘 나왔는데 코드를 변경해도 정답이 아니라고 해서 새롭게 풀이를 찾아 보았다.
const fs = require('fs');
let input = fs.readFileSync('./input.txt').toString().split(' ').map(i=>+i);
let H = input[0];
let M = input[1];
if(M - 45 < 0){
//45분을 뺀 값이 음수일 경우
M = 60 + (M -45); //음수의 값에 60분을 더해 분의 값을 찾는다.
H -=1; // 시간에 1을 뺀다.
if(H < 0){ // 시간이 음수라면
H = 23; // 시간을 23으로 바꿔 나타낸다
}
}else{
M -= 45;
}
console.log(H+' '+M);
처음 작성한 코드를 보완하면 답으로 인정될 수 있을 것 같은 오기가 생겼다.
여러가지 시도를 해보았는데 결국에는 다 틀렸다고 하니.... 7번 시도하고 포기했다. 그냥 정답이 정해져 있는 것 같다.
그래도 틀려서 다른 풀이 방법도 보면서 공부할 수 있어 다행인지도?
풀이 참고 : https://dev-minju.tistory.com/31