728x90
1. 백준 1527. 금민수의 개수 (실1)
https://www.acmicpc.net/problem/1527
1527번: 금민수의 개수
첫째 줄에 A와 B가 주어진다. A는 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. B는 A보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
풀이
CODE
import sys
input = sys.stdin.readline
a, b = map(int, input().split())
cnt = 0
len_a = len(str(a))
len_b = len(str(b))
def backtracking(num, length):
global cnt
if len(num) == length:
if a <= int(''.join(map(str, num))) <= b:
cnt += 1
return
for each in [4, 7]:
num.append(each)
backtracking(num, length)
num.pop()
for i in range(len_a, len_b + 1):
backtracking([], i)
print(cnt)
- 이번 알고리즘 스터디 문제들 왜이렇게 어려운가에 대하여...
- 완전 범위 비교는 당연히 시간초과가 되고, 범위 내에서 4, 7로 이루어진 숫자를 만들고 해당 내용에 대한 정수를 범위 비교하여 cnt 수를 업데이트 했다.
728x90
'알고리즘' 카테고리의 다른 글
[코드트리/Python] 포탄 부수기 (1) | 2023.10.13 |
---|---|
[코드트리/Python] 코드트리의 빵 (0) | 2023.10.12 |
[코드트리/Python] 조삼모사 & 연산자 배치하기 (0) | 2023.09.29 |
[코드트리/Python] 바이러스 검사 & 외주 수익 최대화하기 (0) | 2023.09.29 |
[백준/Python] 14499. 주사위 굴리기 (0) | 2023.09.25 |