CodingTest/Baekjoon

[baekjoon] 백준 1105번(파이썬): 팔

JunJangE 2021. 6. 22. 13:49

문제

 

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보다 작거나 같은 자연수이다.

알고리즘

- 두 구간의 자연수를 입력받는다.

- 두 자연수의 길이가 다르면 8을 포함하지 않는 자연수가 존재하는 것으로 0을 출력한다.

- 반복문을 통해 두 자연수의 자릿수를 확인한다.

- 두 자연수의 자릿수의 값이 8로 같으면 카운트한다.

- 두 자연수의 자릿수의 값이 다르면 8을 세지 않아도 되므로 멈춘다.

코드

import sys

l, r = sys.stdin.readline().split()
cnt = 0

# 자연수의 길이가 다르면 8을 포함하지 않는 자연수가 존재
if len(l) != len(r):
    print(cnt)

else:
    # 두 자연수의 자릿수를 확인
    for i in range(len(l)):
        # 두 자연수의 자릿수의 값이 8로 같으면 무조건 8을 포함하므로 카운트한다.
        if l[i] == r[i] == "8":
            cnt += 1

        # 두 자연수의 자릿수의 값이 다르면 8을 세지 않아도 되므로 멈춘다.
        if l[i] != r[i]:
            break

    print(cnt)

github

 

junjange/CodingTest

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com