[C++] 백준 : 28702번 FizzBuzz

wldud·2024년 9월 10일
0

알고리즘

목록 보기
24/34

class문제들을 풀고 있는데 2에서 안 푼 브론즈1 문제가 있어서 풀어봤다. 문자열 중에 숫자로 된 문자열을 찾고 싶은데 어떤 함수를 써야할 지 몰라서 찾아 보았다.
int atoi(const char *);
atoi는 해당 문자가 숫자이면 숫자로 변환해주고 아니면 0을 반환한다.
#include <iostream>에 포함 되어서 다른 헤더를 추가해주지 않아도 된다.

#include <iostream>


using namespace std;

int main(void){
    string s[3];
    int a, k; 
    for(int i=0;i<3;i++){
        cin>>s[i];
    }
    for(int i=0;i<3;i++){
        if(atoi(s[i].c_str()) != 0){
            a = atoi(s[i].c_str());
            k = i;
            break;
        }
    }
    int num = a + 3 - k;
    if(num%3 == 0 && num%5 == 0){
        cout<<"FizzBuzz";
    } else if(num % 3 == 0){
        cout<<"Fizz";
    } else if(num%5 == 0){
        cout<<"Buzz";
    }else{
        cout<<num;
    }
    
}

원래 atoi(s[i])로 했었는데 atoi에는 char * 형태를 넣어주어야 해서 c.str()을 사용하였다.

c.str()함수는 string을 C style의 문자열로 바꿀 때 사용하는 함수이다.
char * 은 문자 배열을 가리키는 포인터이다.

0개의 댓글