반응형
리뷰
문제에 대한 이해가 잘 되지 않아 풀이에 생각보다 시간이 오래 걸렸다. 브론즈 문제 아닌거같은데..
문제 풀이
- 받아온 문자열을 정수로 변환해 주는 함수 to_int를 작성해 주고 받아온 문자열 세개를 각각 함수를 돌려준다.
- 만약 문자열이 FizzBuzz 라면 -15를 리턴, Fizz라면 -3, Buzz라면 -5를 리턴해 준다.
- 아무것도 해당이 되지 않으면 문자열을 정수형으로 바꾸어 리턴
- 정답 변수를 정수형으로 초기화 하고 만약 첫번째 문자열이 0이상 즉, Fizz나 Buzz나 FizzBuzz가 아닐 경우 3을 더한값을 정답 변수에 할당해 준다, 두번째 문자열일 경우 +2, 세번째 문자열일 경우 +1
- to_str 함수를 작성하고 정답 변수에 저장된 정수가 15의 배수면 FizzBuzz, 3의 배수면 Fizz, 5의 배수면 Buzz 세가지 조건 모두 해당하지 않을 경우 정수를 문자열로 바꾸어 리턴한다.
- to_str 함수의 리턴값을 출력해 주면 된다.
참고 사항
정수형 문자열로 입력된 데이터의 인덱스를 잘 확인하자
정답 코드
#include <iostream>
#include <string>
using namespace std;
int to_int(string s) {
if (s == "FizzBuzz") return -15;
if (s == "Fizz") return -3;
if (s == "Buzz") return -5;
return stoi(s);
}
string to_str(int n) {
if (n % 3 == 0 && n % 5 == 0) return "FizzBuzz";
if (n % 3 == 0) return "Fizz";
if (n % 5 == 0) return "Buzz";
else return to_string(n);
}
int main() {
string a, b, c;
cin >> a >> b >> c;
int d = to_int(a);
int e = to_int(b);
int f = to_int(c);
int ans;
if (d >= 0) ans = d + 3;
if (e >= 0) ans = e + 2;
if (f >= 0) ans = f + 1;
cout << to_str(ans);
}
728x90
반응형
'알고리즘 공부 > C++' 카테고리의 다른 글
백준 21180번 Reconstruct Sum C++, 파이썬 (0) | 2024.07.18 |
---|---|
SWEA 4193번 D4 수영대회 결승전 ( 완전 탐색 + 구현 ) C++, 파이썬 (1) | 2024.07.17 |
백준 30802번 웰컴 키트 C++ (1) | 2024.07.15 |
백준 2822번 점수 계산 C++ (3) | 2024.07.15 |
백준 5054번 주차의 신 C++ (0) | 2024.07.15 |