1527번: 금민수의 개수
첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제
은민이는 4와 7을 좋아하고, 나머지 숫자는 싫어한다. 금민수는 어떤 수가 4와 7로만 이루어진 수를 말한다.
A와 B가 주어졌을 때, A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수인 것의 개수를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 A보다 크거나 같고, B보다 작거나 같은 자연수 중에 금민수인 것의 개수를 출력한다.
코드
a, b = map(int, input().split())
ans = 0
def dfs(num):
global ans
if num > b:
return
if num >= a:
ans += 1
dfs(num*10+4)
dfs(num*10+7)
dfs(0)
print(ans)
금민수만 만들어보면서 범위 내의 금민수이면 ans += 1하고 b를 초과하면 리턴하는 함수 dfs를 만들어 문제를 해결하였다.
'문제풀이 > DFS_BFS' 카테고리의 다른 글
[Python/파이썬] 백준 11123번 양 한마리... 양 두마리... (1) | 2023.12.22 |
---|---|
[Python/파이썬] 백준 5567번 결혼식 (0) | 2023.12.12 |
[Python/파이썬] 백준 2665번 미로만들기 (1) | 2023.11.12 |
[Python/파이썬] 백준 12761번 돌다리 (0) | 2023.11.10 |
[Python/파이썬] 백준 17141번 연구소 2 (0) | 2023.11.07 |