[1차]문제 6. 369 게임 박수의 갯수는? 풀이 및 해석
■ 문제설명
369 게임은 여러 명이 같이하는 게임입니다. 게임의 규칙은 아래와 같습니다
→ 한 사람씩 차례대로 숫자를 1씩 더해가며 말합니다.
→ 말해야 하는 숫자에 3, 6, 9 중 하나라도 포하모디어 있다면 숫자를 말하는 대신 숫자에 포함된 3, 6, 9의 개수만큼 손뼉을 칩니다.
어떤수 number가 매개변수로 주어질때, 1부터 number까지 369 게임을 올바르게 진행했을 경우 박수를 총 몇 번 쳤는지를 return하도록 solution 함수를 작성하려 합니다. 빈칸을 채워 전체 코드를 완성해 주세요
■ 매개변수 설명
number가 solution함수의 매개변수로 주어집니다.
number는 10이상 1,000이하의 자연수입니다.
■ return값 설명
1부터 number까지 369게임을 올바르게 진행했을 경우 박수를 총 몇번을 쳤는지 return해주세요.
■ 예시
number | return |
40 | 22 |
■예시 설명
3, 6, 9 : 각각 한번씩 박수
13, 16, 19 : 각각 한번씩 박수
23, 26, 29 : 각각 한번씩 박수
30, 31, 32, 33, 34....., 39 : 십의 자리 열번 + 일의 자리 세번 총 13번 박수
따라서 3+3+3+13 = 22번의 박수를 칩니다.
■ 초기 내용
■ 답안
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int solution(int number) {
int count = 0;
for (int i = 1; i <= number; i++) {
int current = i;
while (current != 0) {
if (current%10==3||current%10==6||current%10==9)
count++;
current /= 10;
}
}
return count;
}
int main() {
int number = 40;
int ret = solution(number);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
■ 답안풀이 및 해석
int main() {
int number = 40;
int ret = solution(number);
printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}
//number을 40으로 초기화
//ret에 solution의 return값 저장
//printf()함수를 이용하여 출력
int solution(int number) {
int count = 0;
for (int i = 1; i <= number; i++) {
int current = i;
while (current != 0) {
if (current%10==3||current%10==6||current%10==9)
count++;
current /= 10;
}
}
return count;
}
//매개변수로 number을 받음
//count변수를 0으로 초기화
//for문을 이용하며 number이하까지 1씩 증가 반복문
// current가 0ㅇ 아닐때까지 반복
//만약 current의 나머지가 3, 6, 9이면 count+1
//current/=10을 통해 10의자리가 3인지 확인
//반복문이 끝나면 빠져나감
■ 실행결과
COS PRO 2급 기출문제 - C언어 - 구름EDU
YBM IT에서 시행하는 COS Pro 자격증 기출문제를 직접 풀어볼 수 있는 실습 위주의 강좌입니다.
edu.goorm.io