※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 HackerRank 문제인 Time Conversion이다.
문제는 아래 링크를 확인하자.
https://www.hackerrank.com/challenges/time-conversion/problem
Time Conversion | HackerRank
Convert time from an AM/PM format to a 24 hour format.
www.hackerrank.com
주어진 시각이 AM인 경우와 PM인 경우를 나누어 생각하자
AM이 주어진 경우를 생각해보자. 첫 두자리가 "12"인 경우 그 두자리를 "00"으로 바꿔 시각을 표기해야한다. "12"가 아닌 경우 있는 그대로 시각을 표기하면 된다.
PM이 주어진 경우를 생각해보자. 첫 두자리가 "12"인 있는 그대로 시각을 표기하면 된다. "12"가 아닌 경우 그 두자리에 있는 수에 12를 더해 시각을 표기를 해야한다.
substr을 이용하면 부분문자열을 편하게 잘라내 비교할 수 있다.
stoi함수는 주어진 문자열을 정수로, to_string함수는 주어진 정수를 문자열로 바꿔주는 함수이다. 편리한 함수이므로 잘 기억해두자.
아래는 제출한 소스코드이다.
string timeConversion(string s) {
if (s[8] == 'A') {
if (s.substr(0, 2) == "12") return "00" + s.substr(2, 6);
else return s.substr(0, 8);
}
else {
if (s.substr(0, 2) == "12") return s.substr(0, 8);
else {
int hour = stoi(s.substr(0, 2)) + 12;
return to_string(hour) + s.substr(2, 6);
}
}
}
728x90
'HackerRank > HackerRank Algorithms' 카테고리의 다른 글
[HackerRank // C++] Grading Students (0) | 2022.06.21 |
---|---|
[HackerRank // C++] Birthday Cake Candles (0) | 2022.06.19 |
[HackerRank // C++] Mini-Max Sum (0) | 2022.06.18 |
[HackerRank // C++] Staircase (0) | 2022.06.17 |
[HackerRank // C++] Plus Minus (0) | 2022.06.16 |