본문 바로가기
C C++/C C++ LeetCode

[C/C++] Leetcode 412. Fizz Buzz

by Go! Jake 2022. 10. 17.

문제풀이

이 문제는 기본적으로 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;
    }
};

 

댓글