알고리즘/solved.ac CLASS 2

28702번: FizzBuzz

melitina 2024. 6. 16. 00:18

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

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

    // 각 문자열의 길이는 8 이하입니다.
    string a, b, c;
    // FizzBuzz 문제에서 연속으로 출력된 세 개의 문자열이
    // 한 줄에 하나씩 주어집니다.
    // 입력이 항상 FizzBuzz 문제에서 연속으로 출력된
    // 세 개의 문자열에 대응됨이 보장됩니다.
    cin >> a >> b >> c;

    // 연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요. 
    // 여러 문자열이 올 수 있는 경우, 아무거나 하나 출력하세요.
    // 입력받은 a, b, c 중 반드시 하나는 숫자 (3의 배수인지 확인하기 때문)
    // 숫자인지 확인
    if (c[0] >= '0' && c[0] <= '9') {
        // c 다음에 올 문자 x
        int x = stoi(c) + 1;

        if (x % 3 == 0) {
            // i가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다.
            if (x % 5 == 0) {
                cout << "FizzBuzz";
            }
            // i가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다.
            else {
                cout << "Fizz";
            }
        }
        // i가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다.
        else if (x % 5 == 0) {
            cout << "Buzz";
        }
        // i가 3의 배수도 아니고 5의 배수도 아닌 경우 i를 그대로 출력합니다.
        else {
            cout << x;
        }
    }
    else if (b[0] >= '0' && b[0] <= '9') {
        // c 다음에 올 문자 x
        int x = stoi(b) + 2;

        if (x % 3 == 0) {
            // i가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다.
            if (x % 5 == 0) {
                cout << "FizzBuzz";
            }
            // i가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다.
            else {
                cout << "Fizz";
            }
        }
        // i가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다.
        else if (x % 5 == 0) {
            cout << "Buzz";
        }
        // i가 3의 배수도 아니고 5의 배수도 아닌 경우 i를 그대로 출력합니다.
        else {
            cout << x;
        }
    }
    else if (a[0] >= '0' && a[0] <= '9') {
        // c 다음에 올 문자 x
        int x = stoi(a) + 3;

        if (x % 3 == 0) {
            // i가 3의 배수이면서 5의 배수이면 “FizzBuzz”를 출력합니다.
            if (x % 5 == 0) {
                cout << "FizzBuzz";
            }
            // i가 3의 배수이지만 5의 배수가 아니면 “Fizz”를 출력합니다.
            else {
                cout << "Fizz";
            }
        }
        // i가 3의 배수가 아니지만 5의 배수이면 “Buzz”를 출력합니다.
        else if (x % 5 == 0) {
            cout << "Buzz";
        }
        // i가 3의 배수도 아니고 5의 배수도 아닌 경우 i를 그대로 출력합니다.
        else {
            cout << x;
        }
    }

	return 0;
}

 

https://khyunx.tistory.com/268

 

[백준 / BOJ] C++ 28702 FizzBuzz

28702번: FizzBuzz 문제 https://www.acmicpc.net/problem/28702 28702번: FizzBuzz FizzBuzz 문제는 $i = 1, 2, \cdots$ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다. $i$가 $3$의 배수이면서 $5$의

khyunx.tistory.com

 

https://blockdmask.tistory.com/333

 

[C++] stoi, stof, stol, stod 함수에 대해서 (string to int)

안녕하세요. BlockDMask 입니다. 지난시간에는 C/C++에 기존에 존재하던 atoi, atof, atol등 char* 타입의 문자열을 정수로, 실수로 (=숫자로) 변경하는 함수에 대해서 살펴 보았습니다. 오늘은! C++11에서 부

blockdmask.tistory.com

 

'알고리즘 > solved.ac CLASS 2' 카테고리의 다른 글

2108번: 통계학  (0) 2024.06.26
18110번: solved.ac  (0) 2024.06.25
11651번: 좌표 정렬하기 2  (0) 2024.06.18
1676번: 팩토리얼 0의 개수  (0) 2024.06.16
30802번: 웰컴 키트  (1) 2024.06.14