[백준 BOJ] 14912번 숫자 빈도수 (C++/cpp)
2022. 7. 17. 02:00ㆍPS (Program Solving)/BOJ (백준)
문제 설명
https://www.acmicpc.net/problem/14912
접근 방법 - 브루트포스 알고리즘을 이용한 문제
백준의 14912번 문제는 브루트포스 알고리즘을 이용한 수학 문제이다.
해당 문제는, 1부터 입력받은 숫자(a)까지 특정 숫자(n)가 몇 개 포함되어있는지를 출력해야 하는 문제이다.
필자의 경우엔 이중 반복문을 이용하여 브루트포스 알고리즘을 수행하였다.
활용한 방법에 대해선 아래로 설명을 기재하였으니 자세한 내용은 아래를 참고해보길 바란다.
필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.
코드의 실행 순서
1) a와 n을 차례로 입력받는다.
(문제: 1부터 a까지의 숫자들 중 n의 숫자를 총 몇 개 포함하고 있는가?)
2) 문제에 대한 정답을 카운팅할 변수 cnt를 0으로 초기화하여 선언한다.
3) 이중 반복문을 사용하여 아래의 연산을 취한다.
- 1부터 a까지 탐색하며 각 자릿수를 추출한다.
- 만일 현재 탐색값의 특정 자릿수에 n의 숫자가 발견될 시, cnt에 1을 더한다.
4) 3)에서 모든 연산이 완료되었다면, 최종적으로 저장된 cnt를 출력한 뒤 실행 종료한다.
반응형
성공한 코드
#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
#define endl '\n'
using namespace std;
//백준 14912번 코드
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int a, n;
cin >> a >> n;
int cnt = 0;
for (int i = 1; i <= a; i++) {
for (int j = 1; j <= i; j *= 10) {
if (i % (j * 10) / j == n) { cnt++; }
}
}
cout << cnt << endl;
}
제출 결과
(2022.06.03 백준 14912번 문제 제출 결과)
반응형
'PS (Program Solving) > BOJ (백준)' 카테고리의 다른 글
[백준 BOJ] 10797번 10부제 (C++/cpp) (0) | 2022.07.19 |
---|---|
[백준 BOJ] 2312번 수 복원하기 (C++/cpp) (0) | 2022.07.18 |
[백준 BOJ] 11931번 수 정렬하기 4 (C++/cpp) (0) | 2022.07.03 |
[백준 BOJ] 9076번 점수 집계 (C++/cpp) (0) | 2022.07.03 |
[백준 BOJ] 5800번 성적 통계 (C++/cpp) (0) | 2022.07.02 |