해결방법
만약 3의 배수라면 Fizz, 5의 배수라면 Buzz, 3의 배수이면서 5의 배수라면 FizzBuzz를 출력하면 된다.
입력받을 때 첫번째 수가 문자인 경우에도 두번째, 세번째 수까지 검사해서 숫자를 하나 찾아낸다. 그 수를 기점으로 시작점을 찾아내고, 세 개의 문자열 다음에 올 수를 찾아 그 수를 fizzbuzz 함수에 집어넣어 출력하는 것이다.
정답 코드
#include <iostream>
#include <string>
#include <cctype>
using namespace std;
string fizzbuzz(long long n)
{
if (n % 3 == 0 && n % 5 == 0)
return "FizzBuzz";
if (n % 3 == 0)
return "Fizz";
if (n % 5 == 0)
return "Buzz";
return to_string(n);
}
int main()
{
string input[3];
long long start = -1;
for (int i = 0; i < 3; i++)
{
cin >> input[i];
}
if (isdigit(input[0][0]))
{
start = stoll(input[0]);
}
else if (isdigit(input[1][0]))
{
start = stoll(input[1]) - 1;
}
else if (isdigit(input[2][0]))
{
start = stoll(input[2]) - 2;
}
cout << fizzbuzz(start + 3) << endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 이항 계수 1 11050 (0) | 2024.12.17 |
---|---|
BOJ - 부녀회장이 될테야 2775 (0) | 2024.12.15 |
BOJ - 데칼코마니 23841 (0) | 2024.12.15 |
BOJ - 너의 평점은 25206 (0) | 2024.12.15 |
BOJ - 블랙잭 2798 (0) | 2024.12.15 |