나 개발자 진짜 되냐?

백준 C++ 28702번 FizzBuzz ( stoi ) 본문

C++을 시작해봐요!/단계문제를 풀어보아요!

백준 C++ 28702번 FizzBuzz ( stoi )

Snow Rabbit 2026. 3. 27. 14:28

3월 마지막 금요일입니다.

 

이상하게 기분이 썩 좋지 않아요.

 

하지만 오늘 문제

class 2에서의 마지막 브론즈 문제다.

다음 주부턴... 실버 5로 가게 된다..

 

과연.. 나 할 수 있으려나 모르겠다.

 

후다닥 풀어보고

주말에 또 재미나게 놀아봅시다.


 

 

 

자, 힌트까지 받았습니다.

왜냐하면

이 친구는 스페셜 저지 기 때문이죠

 

우선 이 문제에서 연속으로 출력된 세 개의 문자열에 대응한다.

문자열의 길이는 8 이하.. 그러면 10.000.000 그렇게 많은 숫자는 아니다.

 

 

일단 내 계획은

 

3개를 문자열로 받는다.

 

일단 3의 배수 5의 배수 이런 거보다

아무것도 아닌 게 더 많을 테니

셋 중에 숫자가 있다면..? 

a가 숫자면 +3 한 값을 나눠서 값을 구하고

b가 숫자면 +2

c가 숫자면 +1

 

셋다 피즈버즈일리는 없을 거 같았다.

 

 

문제는 문자열로 받을 거다 보니...

누가 숫자인지 문자인지 알 수가 없는 노릇..

 

어떻게 알 수 있지?

 

인지 씨를 찾아가서 물어봤다.

예 아니요로만 대답하라고 하며..

fizz - '0'이 되냐고

안된단다.

 

문자열이랑 문자랑 뺄 수 있냐며.....

긁적..

미안합니다. 예

 

 

갑자기 내가 안쓰러웠는지 보너스 지식을 주었다.

첫 번째 글자만 봐도 알지 않겠냐는 것..

 

 

아 그렇다.

 

 

F나 B는 숫자로 바꾸면 대문자라 무조건 20이 넘을 것이다.

근데 숫자면 무조건 0부터 9 사이일 테니

그렇게 숫자를 파악하는 것.

 

해보자.

 

열심히 하던 도중...

다시 문제점에 봉착...

만약에 숫자인걸 알았으면..? 문자열을 숫자로 바꿔줘야 하는데..?

어찌하죠..?

 

분명 그거 문법이 있는데..

string to int

엇..

stoi!!!!??!?

 

어떻게 쓰더라..?
그냥 stoi를 냅다 적으니 뭔가 빨간 줄이 사라졌다.

하지만 이렇게 둬도 되나? 싶어서 num에 넣어봤다.

 

괜찮은 거 같아서 일단 짜봤다..

 

 

if문 천국....

테케는 나오는데 답이 맞는지는 모르겠다.

 

인지 씨에게 물어봤다.

 

 

하지만 코딩 꿀팁이라며

정석을 알려주었다.

숫자야 아니야? 할 때는

s [0] - ' 0' < 10 이거보다는

s[0] >= '0'  && s[0] <= '9'

가 더 좋다고 한다.

 

사실 나는 대문자여서 당연히 10 이상이겠거니 했던 건데..

ㅋㅋㅋㅋㅋㅋ긁적..

오케이

숫자인지 아닌지 알 때는 이렇게! 하기

 


 

혹시나 내가 어느 날 놓칠까 봐

if, for, while 등

중괄호 {} 안에다가 변수를 선언하게 되면

하나의 방에다가 선언한 거라

거기서 밖에 못쓴다고 한다.

 

함수에서만 그런 줄 알았는데 중괄호로 되어있으면 모두 다 그렇다고 한다.

 

아! 그리고

 

마법의 주문 stoi를 다시 익혔다.

int num = stoi(s);

 

이거 숫자야 아니야?

s [0] >= '0'  && s[0] <= '9'

 

 

오코완!

스페셜 저지 완!

Class 브론즈 완!