728x90
반응형

28702번: FizzBuzz
문제
https://www.acmicpc.net/problem/28702
28702번: FizzBuzz
FizzBuzz 문제는 $i = 1, 2, \cdots$ 에 대해 다음 규칙에 따라 문자열을 한 줄에 하나씩 출력하는 문제입니다. $i$가 $3$의 배수이면서 $5$의 배수이면 “FizzBuzz”를 출력합니다. $i$가 $3$의 배수이지만 $5$
www.acmicpc.net
풀이
대회 도중에는 isdigit 함수가 생각이 안났다..
문자의 첫번째 글자가 ascii 코드 기준 숫자인지로 문자열 전체가 숫자인지 판단했다.
입력받은 a, b, c 중 반드시 하나는 숫자이기 때문에 각각에 대해 숫자인 경우에 +1, 2, 3을 해서 조건에 맞게 출력했다.
코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string a, b, c;
cin >> a >> b >> c;
if (c[0] >= 48 && c[0] <= 57) {
int x = stoi(c) + 1;
if (x % 3 == 0) {
if (x % 5 == 0) {
cout << "FizzBuzz";
} else {
cout << "Fizz";
}
} else if (x % 5 == 0) {
cout << "Buzz";
} else {
cout << x;
}
} else if (b[0] >= 48 && b[0] <= 57) {
int x = stoi(b) + 2;
if (x % 3 == 0) {
if (x % 5 == 0) {
cout << "FizzBuzz";
} else {
cout << "Fizz";
}
} else if (x % 5 == 0) {
cout << "Buzz";
} else {
cout << x;
}
} else if (a[0] >= 48 && a[0] <= 57) {
int x = stoi(a) + 3;
if (x % 3 == 0) {
if (x % 5 == 0) {
cout << "FizzBuzz";
} else {
cout << "Fizz";
}
} else if (x % 5 == 0) {
cout << "Buzz";
} else {
cout << x;
}
}
return 0;
}
728x90
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[백준 / BOJ] C++ 28444 HI-ARC=? (2) | 2023.08.17 |
---|---|
[백준 / BOJ] C++ 28703 Double It (0) | 2023.08.15 |
[백준 / BOJ] C++ 28701 세제곱의 합 (0) | 2023.08.15 |
[백준 / BOJ] C++ 17430 가로등 (4) | 2023.08.12 |
[백준 / BOJ] C++ 27965 N결수 (0) | 2023.08.12 |