728x90
https://www.acmicpc.net/problem/1527
포문을 사용해서 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 |