ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • BOJ 2193번 파이썬
    Study/BOJ 2020. 1. 30. 17:30

    블로그 두번째로 올리는 글인데... 부지런하게 새로운 걸 올리려 하는데... 게을러서 이번에도 알고리즘 하나 풀었습니다.

     

    이친수의 갯수를 구하는 문젠데

    N 자리의 이친수의 갯수를 순서대로 나열하면

    1

    10

    100, 101

    1010, 1000, 1001

    10000, 10100, 10010, 10101, 10001

    ...

     

    위와 같은 식으로 가는데 여기서  

    10

    [(100), 101]

    [(1010, 1000), 1001]

    [(10000, 10100, 10010), 10101, 10001]

     

    N-1에서 ()감싸진 0으로 끝나는 이친수가

    N에선 1로 끝날 수 밖에 없겠죠? 왜냐하면 11과 같이 1이 연속되면 안되니까!

     

    N-1에서 [] 감싸진 전체의 이친수에 대해선

    N에선 0이 붙어도 상관없습니다. 왜냐하면 0은 ..10이든 ..00이든 상관없으니까요.

     

    이렇게 풀었습니다...

     

     

    def prinay_number_count(N):
        if N == 1 or N == 2:
            return 1
        else:
            next_step = 3
            count_0 = 1 
            count_1 = 1

            while(next_step <= N):
                temp = count_0
                count_0 = count_0 + count_1
                count_1 = temp
                next_step += 1
        
        return count_0

    if __name__== '__main__':
        N = int(input())
        print(prinay_number_count(N))

    'Study > BOJ' 카테고리의 다른 글

    BOJ 11727번  (0) 2020.02.24
    BOJ 1912번  (0) 2020.02.21
    BOJ 2156번  (0) 2020.02.20
    BOJ 1932번  (0) 2020.02.02
    BOJ 1149번 파이썬  (0) 2020.01.29

    댓글

Designed by Tistory.