https://www.acmicpc.net/problem/28702
제출 코드
#include <iostream>
#include <string>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
string str[3];
int res;
cin >> str[0] >> str[1] >> str[2];
for (int i = 0; i < 3; i++)
{
if (str[i] != "FizzBuzz" && str[i] != "Fizz" && str[i] != "Buzz")
{
res = stoi(str[i]) + 3 - i;
}
}
if (res % 5 == 0)
{
if (res % 3 == 0)
cout << "FizzBuzz";
else
cout << "Buzz";
}
else if (res % 3 == 0)
cout << "Fizz";
else
cout << res;
}
문자열이 3개 출력되는데, 그 중 하나라도 숫자라면 다음에 오는 문자열을 쉽게 알 수 있다
그런데 fizzbuzz, fizz, buzz는 각각 15의 배수, 3의 배수, 5의 배수이기 때문에 3개 중 숫자가 하나라도 없는 경우가 나올 수 없어서 위와 같이 코드를 작성하였다
3개 문자열 중에서 숫자인 것을 찾고, 그 숫자에 몇 번째 문자열인지를 고려해서 다음에 올 정수를 구해준다
그리고 mod 연산을 통해 3의 배수 5의 배수 15의 배수 여부를 찾아서 그에 맞게 출력한다
'Programing > 백준, 프로그래머스(C++)' 카테고리의 다른 글
[C++][백준 10814] 나이순 정렬 (0) | 2025.01.06 |
---|---|
[C++][백준 1181] 단어 정렬 (0) | 2025.01.05 |
[C++][백준 10989] 수 정렬하기 3 (0) | 2025.01.05 |
[C++][백준 2869] 달팽이는 올라가고 싶다 (0) | 2025.01.04 |
[C++][백준 2275] 부녀회장이 될테야 (0) | 2025.01.04 |