AM/PM 포맷을 밀리터리 타임으로 바꿔라.
필요한 조건 1. 입력 값이 AM인지 PM인지?
필요한 조건 2. 입력 값이 12시인지 아닌지?
각각 조건 판별에 필요한 값을 추출하기 위해
1.정규식+match 메서드로 숫자만 뽑아냄.
2.charAt 메서드로 AM/PM만 뽑아냄.
if 문으로 분기해서 hour 값을 바꿔줌.
바뀐 hour 값을 가지고 포매팅해서 리턴.
'use strict';
const fs = require('fs');
process.stdin.resume();
process.stdin.setEncoding('utf-8');
let inputString = '';
let currentLine = 0;
process.stdin.on('data', function(inputStdin) {
inputString += inputStdin;
});
process.stdin.on('end', function() {
inputString = inputString.split('\n');
main();
});
function readLine() {
return inputString[currentLine++];
}
/*
* Complete the 'timeConversion' function below.
*
* The function is expected to return a STRING.
* The function accepts STRING s as parameter.
*/
function timeConversion(s) {
const numbers = s.match(/\d+/g);
const merd = s.charAt(s.length -2) + s.charAt(s.length -1);
let hour = numbers[0];
if (merd === "AM") {
if(hour === "12") {
hour = "00";
}
} else if (merd === "PM") {
if(hour !== "12") {
hour =`${Number(hour)+12}`
}
}
const result = `${hour}:${numbers[1]}:${numbers[2]}`;
return result;
}
function main() {
const ws = fs.createWriteStream(process.env.OUTPUT_PATH);
const s = readLine();
const result = timeConversion(s);
ws.write(result + '\n');
ws.end();
}
숫자만 추출해서 배열에 담으려면 -> 정규식+match 메서드 활용
문자열에서 특정 인덱스 추출하기 -> charAt 메서드 활용