[Boj문제풀이]

[Boj/백준] 1105 Python

ki7348 2021. 8. 27. 11:55

문제출처: https://www.acmicpc.net/problem/1105

 

1105번: 팔

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

www.acmicpc.net

 

 

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