백준 1105번 [팔 | python]

1294 단어 python백준python

문제

L과 R이 주어진다. 이때, L보다 크거나 같고, R보다 작거나 같은 자연수 중에 8이 가장 적게 들어있는 수에 들어있는 8의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 L과 R이 주어진다. L은 2,000,000,000보다 작거나 같은 자연수이고, R은 L보다 크거나 같고, 2,000,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 L보다 크거나 같고, R보다 작거나 같은 자연수 중에 8이 가장 적게 들어있는 수에 들어있는 8의 개수를 구하는 프로그램을 작성하시오.

예제 입력 1

1 10

예제 출력 1

0

예제 입력 2

88 88

예제 출력 2

2

L과 R의 자리수가 10자리이기 때문에 d는 10보다 큰 12로 잡아두었다.
L과 R중에 뭐가 더 크고 작은지 모르기 때문에 min하고 max써서 범위를 for문으로 돌렸고, 만약 그 안의 수 중에서 8이 하나도 들어가 있지 않은 수가 있다면 셀 필요가 없기 때문에, 8의 개수가 0이라면 바로 반복문을 끝내고 0을 출력하게 하였고, 아니라면 이 d보다 작은게 나올 때마다 c에 다시 그 값을 넣어 가장 작은 수만을 남게 하였다.

import sys

a,b = map(int, sys.stdin.readline().split(" "))

d=12
for i in range(min(a,b),max(a,b)+1):
  if str(i).count("8") > 0:
    c = str(i).count("8")
    if c<=d:
      d = c
  else:
    d=0
    break

print(d)

좋은 웹페이지 즐겨찾기