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

핵심 전략:
연속 된 세 수 중 최소 하나의 수는 Fizz, Buzz, FizzBuzz에 해당되지 않는다는 사실을 이용
핵심 전략 증명:

Fizz, Bizz, FizzBizz는 15를 주기로 가지며 규칙성이 있다. 따라서 1부터 15 중에 3의 배수, 5의 배수에 해당하는 것을 표시하면 위와 같고 그 수들은 16~30과 위치가 동일하다. 또 이를 보면 연속 된 세 수가 모두 표시 돼있는 경우는 없기 때문에 세 수 모두 Fizz, Bizz, FizzBizz에 속해 있을 수 없다.
정답 코드:
#include <bits/stdc++.h>
#define nl '\n'
using namespace std;
typedef long long ll;
int i, j;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string s1, s2, s3;
cin >> s1 >> s2 >> s3;
int num;
if (s1[3] != 'z'){
num = stoi(s1) + 3;
}
if (s2[3] != 'z'){
num = stoi(s2) + 2;
}
if (s3[3] != 'z'){
num = stoi(s3) + 1;
}
if (num % 5 == 0 && num % 3 == 0){
cout << "FizzBuzz\n";
}
else if(num % 3 == 0){
cout << "Fizz\n";
}
else if(num % 5 == 0){
cout << "Buzz\n";
}
else{
cout << num << nl;
}
return 0;
}
LIST
'BOJ 문제풀이' 카테고리의 다른 글
백준 30804 c++ 풀이 (과일 탕후루) (0) | 2024.08.11 |
---|---|
백준 30802 c++ 문제 풀이 (웰컴 키트) (0) | 2024.08.10 |
백준 23175번 c++ 풀이 (0) | 2021.10.11 |
백준 1644번 c++ 풀이 (0) | 2021.10.10 |
백준 2003번 c++ 풀이 (0) | 2021.10.10 |