문제풀이
이 문제는 기본적으로 int값을 string으로 변경할 수 있어야한다.
string에서 int로 변환
#include <string>으로 부를 수 있는 to_string(int x)라는 함수를 통해 이를 구현할 수 있다. 외우자.
(반대로, string에서 int로 변경하는 경우, stoi(string x)로 변경할 수 있다.)
해당 함수를 사용하지 않고 (string) (48+i) 등으로 형변환하여 풀고자 하였으나, ASCII 값은 0~9를 표현하는 것이기 때문에, 11, 13 등 자릿수가 두 자리 이상이 되면 구현하기 복잡해진다. to_string(int x) 함수가 가장 간단하다.
조건에 따라 vector에 값 넣기
if-else 조건에 따라 값을 넣으면 된다.
소스코드
class Solution {
public:
vector<string> fizzBuzz(int n) {
vector<string> v;
for (int i=1; i<=n; i++)
{
if (i%3==0 && i%5==0)
{
v.push_back({"FizzBuzz"});
}
else if (i%3==0)
{
v.push_back({"Fizz"});
}
else if (i%5==0)
{
v.push_back({"Buzz"});
}
else
{
v.push_back({to_string(i)});
}
}
return v;
}
};
댓글