Notice
Recent Posts
Recent Comments
Link
Hello It's good to be back ^_^
[코드트리 조별과제] 3주차 레포트 본문
이번에 풀은 문제는 3 6 9 게임 문제이다. 내가 작성한 코드는 다음과 같다
#include <iostream>
using namespace std;
int haveMultiplesOf3(int n){
int cnt = 0;
while (n > 0){
if (n % 10 == 3 || n % 10 == 6 || n % 10 == 9){
cnt++;
break;
}
n /= 10;
}
return cnt;
}
int isMultiplesOf3(int a, int b){
int cnt = 0;
for (int i = a; i <= b; i++){
if (i % 3 == 0) cnt++;
else cnt += haveMultiplesOf3(i);
}
return cnt;
}
int main() {
// 여기에 코드를 작성해주세요.
int cnt;
//입력
int a, b;
cin >> a >> b;
//연산
cnt = isMultiplesOf3(a, b);
//출력
cout << cnt;
return 0;
}
c++로 풀었다. 사실 계속 결과값이 00이 나와서 뭐가 문제인지 한참동안 고민했다. 하지만 아무리 봐도 문제가 없는 것 같아서 결국 gpt에게 물어봤다. 알고보니 c++에 익숙하지 않은 나머지 입력과 출력을 반대로 작성한 것이었다...다행히 코드자체를 구현하지 못한 것은 아니여서 쉽게 해결할 수 있었다.
구조를 설명하자면, 메인에서 숫자가 3의 배수인지 확인하는 함수를 호출한다. for문을 돌면서 숫자가 3의 배수이면 cnt를 증가시키고 아니라면 자릿수에 3의 배수가 있는지 확인하는 함수를 호출한다. 이 함수에서는 while문을 돌면서 각 자릿수에 3의 배수가 있는지 확인하고 만약 없다면 숫자를 10으로 나눈 몫으로 바꾸어 계속 while문을 돈다. n이 점차 작아지다가 0보다 작아지면 while문을 탈출한다.
'Study > 알고리즘' 카테고리의 다른 글
[코드트리 조별과제] 2주차 레포트 (0) | 2024.08.18 |
---|---|
[코드트리 조별과제] 1주차 레포트 (0) | 2024.08.11 |