반응형
SMALL
문제 정보
문제명 - 금민수의 개수
난이도 - 실버 I
문제 번호 - 1527번
문제 링크
문제
은민이는 4와 7을 좋아하고, 나머지 숫자는 싫어한다. 금민수는 어떤 수가 4와 7로만 이루어진 수를 말한다.
A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수인 것의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다.
A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.
B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수인 것의 개수를 출력한다.
예제 입력/출력
예제 입력 예제 출력 1 10 2 11 20 0 74 77 2 1000000 5000000 64
알고리즘 분류
● 브루트포스 알고리즘
소스코드
package Lv2_Silver;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
* @author HanHoon
* @category 브루트포스 알고리즘
* https://www.acmicpc.net/problem/1527
*/
public class BOJ_S1_1527_금민수의_개수 {
static int result = 0;
public static void makeGoldNumber(int count, int num, int N, int A, int B) {
// 자리수가 N만큼 됐을 때
if(count == N) {
if(A <= num && num <= B)
result++;
return;
}
makeGoldNumber(count+1, num + 4 * (int)Math.pow(10, count), N, A, B);
makeGoldNumber(count+1, num + 7 * (int)Math.pow(10, count), N, A, B);
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
// A~B 범위 내의 금민수를 구해라!
int A = Integer.parseInt(st.nextToken());
int B = Integer.parseInt(st.nextToken());
// 1,000,000,000 보다 작은 수로 만듦 (1자리수~9자리수)
for (int N = 1; N < 10; N++)
makeGoldNumber(0, 0, N, A, B);
System.out.println(result);
br.close();
}
}
BaekJoon List
기회는 준비된 자에게 찾아온다.
반응형
LIST
'BaekJoon > Silver' 카테고리의 다른 글
[BOJ/JAVA] 백준 1992 : 쿼드트리 (자바) (0) | 2022.04.08 |
---|---|
[BOJ/JAVA] 백준 16935 : 배열 돌리기 3 (자바) (0) | 2022.04.08 |
[BOJ/JAVA] 백준 1254 : 팰린드롬 만들기 (자바) (0) | 2022.04.08 |
[BOJ/JAVA] 백준 11660 : 구간 합 구하기 5 (자바) (0) | 2022.04.08 |
[BOJ/JAVA] 백준 1074 : Z (자바) (0) | 2022.04.07 |
댓글