Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Archives
Today
Total
관리 메뉴

잡동사니 블로그

[백준] 1105 - 팔 (python) 본문

Python/백준

[백준] 1105 - 팔 (python)

코딩부대찌개 2023. 3. 11. 17:33

https://www.acmicpc.net/problem/1105

 

1105번: 팔

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

www.acmicpc.net

 

문제

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

예제 입력 3

800 899

예제 출력 3

1

예제 입력 4

8808 8880

예제 출력 4

2

풀이

a, b = map(int, input().split())
cnt=0
t = list(str(a))
q = list(str(b))
if len(t) != len(q):
    cnt=0
else :
    for j in range(len(t)):
        if t[j] == q[j]:
            if q[j] == '8':
                cnt += 1
        else :
            break
print(cnt)

 

우선 두 숫자의 길이가 다르면 결과는 무조건 0이 되므로 길이가 같을 경우는 0, 아닐 경우(두 숫자의 길이가 같은 경우)에는 두 숫자를 반복하며 둘다 8인 경우엔 정답인 cnt변수에 1씩 증가하며 둘중에 하나라도 8이 나오지 않는 경우에는 break 

마지막에 정답 cnt 출력