본문 바로가기
Algorithm

[그리디/Greedy] 백준 1105 팔 - 파이썬(Python)

by jangThang 2022. 10. 6.
반응형

백준 온라인 저지

 

[ Contents ]

     

     

    1. 문제 (링크 참조)

     

    1105번: 팔

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

    www.acmicpc.net

     

     

     

    2. 문제 풀이

     L과 R 사이에 있는 수 중에서 8이 가장 적게 들어간 수를 찾아, 8의 개수를 출력하는 문제입니다.

     

    1) L과 R의 자릿수가 다른 경우: 0개
    2) L과 R의 자릿수가 동일한 경우: 왼쪽 끝부터 동일한 자릿대 + 8인 개수를 파악 (단, 동일 숫자가 아니면 break)

     1의 경우, 자릿수가 넘어갈 때 9, 99, 999와 같이 8이 0인 수가 나오므로 0개입니다.

     2의 경우는, 고정된 8의 개수를 찾아야 합니다. 앞 자리가 동일하고 그 중에 8이 있다면, 반드시 해당 8은 포함되어야 합니다.

     

     

     

    3. 코드

    # 입력
    L, R = input().split()
    
    # 같은 자리에 있는 8 찾기
    res = 0
    if len(L) == len(R):
        for i, j in zip(L, R):
            if i == j == '8':
                res += 1
            elif i != j:
                break
    print(res)

     zip함수를 이용하면, L과 R 문자열에서 왼쪽 끝부터 하나씩 추출할 수 있습니다.

     

     

    star가 되고나서 Tistory

    반응형

    댓글