백준 28702번 (FizzBuzz, C++) [BAEKJOON]

FizzBuzz

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

시간 제한메모리 제한제출정답맞힌 사람정답 비율
0.5 초1024 MB131028022726061.593%

문제

FizzBuzz 문제는 i=1,2,⋯ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다.

  •  i가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다.
  •  i가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다.
  •  i가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다.
  •  i가 3의 배수도 아니고 5의 배수도 아닌 경우 i를 그대로 출력합니다.

FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 주어집니다.

이때, 이 세 문자열 다음에 올 문자열은 무엇일까요?

입력

FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이 한 줄에 하나씩 주어집니다.

각 문자열의 길이는 8 이하입니다. 입력이 항상 FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열에 대응됨이 보장됩니다.

출력

연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요.

여러 문자열이 올 수 있는 경우, 아무거나 하나 출력하세요.

예제 입력 1

Fizz
Buzz
11

예제 출력 1

Fizz

예제 입력 2

980803
980804
FizzBuzz

예제 출력 2

980806

힌트

FizzBuzz 문제의 i = 1 ,⋯, 20에 대한 출력은 다음과 같습니다.

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
19
Buzz

출처

Contest > solved.ac > solved.ac Grand Arena #2 B번

알고리즘 분류


통과된 코드

#include <iostream>
#include <string>

using namespace std;

string Input[3];

int main() 
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    for (int i = 0; i < 3; i++)
        cin >> Input[i];

    for (int i = 0; i < 3; i++) {
        if (Input[i][0] == 'F' || Input[i][0] == 'B')
            continue;

        int Num = stoi(Input[i]) + 3 - i;
        if (Num % 15 == 0) cout << "FizzBuzz";
        else if (Num % 5 == 0) cout << "Buzz";
        else if (Num % 3 == 0) cout << "Fizz";
        else cout << Num;
        return 0;
    }

    cout << "FizzBuzz";

    return 0;
}

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤