티스토리 뷰
728x90
https://www.acmicpc.net/problem/1105
- 해설 :
자연수 L과 R이 주어질 때 L보다 크거나 같고 R보다 작은 자연수들 중 8이 가장 적게 들어있는 경우의 8의 개수를 찾는 문제이다.
- 풀이 :
L의 자릿수만큼 for문을 반복하여 L과 R의 자릿수를 각각 비교한다. 이 때, 자릿수가 다르다면 그 때까지 8의 개수를 센 값을 출력하고 아니라면 L 과 R의 자릿수가 모두 8인지 확인한다.
이는 L이나 R의 자릿수가 둘 다 8이 아니면 다른 수를 넣어 8이 아니게 만들 수 있기 때문이다.
자릿수가 다를 때 정답을 출력하는 이유는 자릿수가 달라졌을 때 그 뒤의 숫자는 아무거나 와도 상관이 없다는 의미이기 때문이다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import sys
input = sys.stdin.readline
if __name__ == "__main__":
L,R = input().split()
cnt = 0
if len(L) < len(R):
print(0)
else:
for i in range(len(L)):
if L[i] != R[i]:
break
if L[i] == '8' and R[i] == '8' :
cnt+=1
print(cnt)
|
cs |
320x100
'Algorithm > Math' 카테고리의 다른 글
(Python) - BOJ(1339번) : 단어 수학 (0) | 2022.01.26 |
---|---|
(C++) - BOJ(1242번) : 소풍 (0) | 2022.01.26 |
(Python) - BOJ(1041번) : 주사위 (0) | 2022.01.25 |
(Python) - 프로그래머스 : N개의 최소공배수 (0) | 2022.01.24 |
(Python) - 프로그래머스 : 줄 서는 방법 (0) | 2022.01.24 |
댓글
© 2022 WonSeok, All rights reserved