BOJ5671 호텔 방 번호
실버V | 백준 5671 | Python3 파이썬 풀이
조건에 부합한지 체크하는 check(num : int) -> bool 함수를 사용했다.
def check(num : int) -> bool:
numcheck = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0}
for i in str(num):
if numcheck[i] == 1:
return False
numcheck[i] += 1
return True
for i in range(1, 5001):
DP[i] = DP[i - 1] + (1 if check(i) else 0)
import sys
input = sys.stdin.readline
def check(num : int) -> bool:
numcheck = {'0':0, '1':0, '2':0, '3':0, '4':0, '5':0, '6':0, '7':0, '8':0, '9':0}
for i in str(num):
if numcheck[i] == 1:
return False
numcheck[i] += 1
return True
DP = [0] * 5001
for i in range(1, 5001):
DP[i] = DP[i - 1] + (1 if check(i) else 0)
while True:
try:
N, M = map(int, input().split())
print(DP[M] - DP[N - 1])
except:
break
최댓값 5000을 잘못 봐서 틀렸다.