문제출처: https://www.acmicpc.net/problem/1105
1. 문제 접근 방식
자리수가 다르면 8의 최소개수가 0이고
자리수가 같을때 첫 자리가 다르면 8의 개수가 0이고 그 이후로는 8이 겹칠때마다 count 값을 +1씩 해줬다. 8이 안나오면 break
ex) 800 450 => 첫 자리가 다름 => 8의 개수 0.
881 885 => 첫 자리가 같고 8이 같은 자리에서 두번 겹치므로 count+2 => 8의 개수 2개.
2. 내가 푼 코드
import sys
n, m = map(str,sys.stdin.readline().split())
count = 0
if len(n) != len(m):
print(0)
else:
if n[0] != m[0]:
print(0)
else:
if n[0] == m[0] == '8':
count+=1
for i in range(1,len(n)):
if n[i]!=m[i]:
break
else:
if n[i] == m[i] == '8':
count+=1
print(count)
3. 결과 및 느낀점
문제가 너무 막연할때는 테스트 케이스를 여러개 생각해보는 것이 좋다.
특히 수학 문제는 처음에 많이 생각을 하고 틀을 짠 뒤에 시작하는 것이 효율적이라고 생각한다.
숫자를 숫자로 보지 않고 문자열로 보는 능력도 필요한 것 같다...
'[Boj문제풀이]' 카테고리의 다른 글
[Boj/백준] 15922 Python (0) | 2021.08.29 |
---|---|
[Boj/백준] 14247 Python (0) | 2021.08.28 |
[Boj/백준] 14241 Python (0) | 2021.08.26 |
[Boj/백준] 3135 Python (0) | 2021.08.25 |
[Boj/백준] 11508 Python (0) | 2021.08.24 |