[JS] 백준2884 - 알람시계

n-u·2022년 6월 13일
0

Algorithm

목록 보기
3/33
post-thumbnail

백준 2884. 알람시계

https://www.acmicpc.net/problem/2884

제출한 풀이 1 - 틀림

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

profile
기록하며 발전하는 삶

0개의 댓글