-
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