Java

[백준 1527] 금민수의 개수 (JAVA)

iheeeee6-6 2023. 5. 12. 17:56
728x90

https://www.acmicpc.net/problem/1527

1527번: 금민수의 개수

첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.

www.acmicpc.net

 
포문을 사용해서 String을 char로 쪼개서 비교하면 메모리 초과가 난다 ㅎㅎ,,
dfs를 사용해서 0부터 시작해서 아래와 같이 하면 된다.
 

import java.io.*;
import java.util.*;

public class Main {

	static int a, b, result = 0;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		a = Integer.parseInt(st.nextToken());
		b = Integer.parseInt(st.nextToken());
		dfs(0);

		System.out.println(result);
	}

	public static void dfs(long num) {
		if (num > b)
			return;
		if (num >= a && num <= b)
			result++;

		dfs(num * 10 + 4);
		dfs(num * 10 + 7);
	}
}

'Java' 카테고리의 다른 글

[백준 11501] 주식 (JAVA)  (0) 2023.05.21
[백준 1515] 수 이어 쓰기 (JAVA)  (0) 2023.05.17
[백준 1644] 소수의 연속합 (JAVA)  (0) 2023.05.07
[백준 3273] 두 수의 합 (JAVA)  (1) 2023.05.06
[백준 1300] K번째 수 (JAVA)  (0) 2023.05.05