아무거나 내꺼 공부할래
3의 개수는?(Google 인터뷰) / c / 제한시간 없음 본문
▣ 문제
자연수 N이 입력되면 1부터 N까지의 자연수를 종이에 적을 때 각 숫자 중 3의 개수가 몇 개 있는지 구하려고 합니다. 예를 들어 1부터 15까지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5으로 3의 개수는 2개입니다. 자연수 N이 입력되면 1부터 N까지 숫자를 적을 때, 3의 개수가 몇 개인지 구하여 출력하는 프로그램을 작성하세요.
▣ 입력설명
- 첫 줄에 자연수의 개수 N(3<=N<=100,000)이 주어집니다.
▣ 출력설명
- 3의 개수를 출력하세요.
▣ 입력 예시
15 |
▣ 출력 예시
2 |
<내 코드>
#pragma warning(disable:4996)
#include<stdio.h>
int main() {
int n;
int cnt = 0;
int temp;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
temp = i;
if (temp == 3) cnt++;
while (temp / 10 != 0) {
if (temp % 10 == 3) cnt++;
if (temp / 10 == 3) cnt++;
temp = temp / 10;
}
}
printf("%d\n", cnt);
return 0;
}
<수정한 코드>
#pragma warning(disable:4996)
#include<stdio.h>
int main() {
int n;
int cnt = 0;
int temp;
int digit;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
temp = i;
while (temp > 0) {
digit = temp % 10;
if (digit == 3)cnt++;
temp = temp / 10;
}
}
printf("%d\n", cnt);
return 0;
}
한 자리수만 계속 구해서 3이 될때마다 cnt++
.
비슷한 방법으로 코드를 짜긴 했는데 하나하나 분리할 생각을 안하고 그냥 짜다보니까 내꺼가 조잡해진 느낌이 든다
'[c언어&c++] 알고리즘 공부 > 인프런(Inflearn)' 카테고리의 다른 글
3등의 성적은? / c / 제한시간 없음 (0) | 2021.01.22 |
---|---|
탄화수소 질량 / c / 제한시간 없음 (0) | 2021.01.22 |
N!에서 0의 개수 / c / 제한시간 없음 (0) | 2021.01.20 |
Jolly Jumpers / c / 제한시간 없음 (0) | 2021.01.18 |
온도의 최대값 (1차원 배열 구간합) / c / 제한시간 : 1초 (0) | 2021.01.17 |