[BOJ] 1105.팔 (Python)
by 뚜부니
이 문제는 L부터 R까지의 수 중 8이 가장 적게 들어가는 수의 8 개수를 출력하는 문제입니다.
즉, L이 1이고 R이 10이면, 1부터 10 중 8이 가장 적게 들어가는 수는 8을 제외한 모든 수이며, 각각의 숫자에 8이 포함되어 있지 않으므로 0을 출력하면 됩니다.
이러한 형식을 바탕으로 다음과 같은 규칙을 찾을 수 있습니다.
- 두 숫자의 길이가 다르면 8을 하나도 포함하지 않는 숫자가 존재하므로 0 출력
- 두 숫자의 길이가 같을 때
- 두 숫자의 값이 다른 경우 (L = 234, R = 381) 8을 하나도 포함하지 않는 경우가 발생하므로 0 출력
- 두 숫자의 값 일부가 같을 때 (L = 880, R = 889) 백의 자리 8을 제외하고 나머지 자리는 8을 포함하지 않는 경우가 발생하므로 1 출력
- 두 숫자의 값이 같을 때, 포함하고 있는 8 세기
규칙을 기반으로 코드를 작성하면 다음과 같습니다.
import sys
input = sys.stdin.readline
L, R = input().split()
Llen, Rlen = len(L), len(R)
cnt = 0
if Llen != Rlen :
print(cnt)
else :
for i in range(Llen) :
if L[i] != R[i] :
break
else :
if L[i] == '8' :
cnt += 1
print(cnt)
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] 14890.경사로 (Python) (0) | 2021.04.20 |
---|---|
[BOJ] 1929.소수구하기 (Python) (0) | 2021.04.19 |
[BOJ] 12110.2048(Easy) (0) | 2021.04.19 |
[BOJ] 13549.숨바꼭질 3 (Python) (0) | 2021.04.18 |
[BOJ] 1918.후위표기식 (Python) (0) | 2021.04.17 |
블로그의 정보
개발하는 두부
뚜부니