해결방법
형식을 DD:DD:DD로 입력받아야 하므로 int형이 아니라 string형으로 입력받는다. 그리고 stoi(string to int)함수를 이용하여 :를 제외한 숫자들을 string에서 int형으로 바꿔준다. 마지막으로 조합이 가능한 경우를 찾아서 count를 체크해준다.
정답 코드
#include <iostream>
#include <string>
using namespace std;
bool isValidTime(int hour, int minute, int second)
{
return (1 <= hour && hour <= 12) && (0 <= minute && minute <= 59) && (0 <= second && second <= 59);
}
int countPossibleTimes(const string& timeString)
{
int a = stoi(timeString.substr(0, 2));
int b = stoi(timeString.substr(3, 2));
int c = stoi(timeString.substr(6, 2));
int count = 0;
if (isValidTime(a, b, c))
count++;
if (isValidTime(a, c, b))
count++;
if (isValidTime(b, a, c))
count++;
if (isValidTime(b, c, a))
count++;
if (isValidTime(c, a, b))
count++;
if (isValidTime(c, b, a))
count++;
return count;
}
int main()
{
string timeString;
cin >> timeString;
cout << countPossibleTimes(timeString) << endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 2163 초콜릿 자르기 (0) | 2024.09.23 |
---|---|
BOJ - 21867 Java Bitecode (0) | 2024.09.19 |
BOJ - 2476 주사위 게임 (0) | 2024.09.17 |
BOJ - 5598 카이사르 암호 (0) | 2024.09.13 |
BOJ - 2914 저작권 (0) | 2024.09.12 |