티스토리 뷰

백준

백준 2193 문제풀이 [python]

ys.k 2023. 6. 11. 02:00

포스팅에 앞서 내용이 틀릴 수 있습니다.
해당 부분 지적 감사히 받습니다.

문제를 보자.

이친 수 문제이다.

 

처음에 문제 이해를 잘못해서, n=1부터 입력값까지의 이진수 중에 이친 수 개수를 출력하는 건 줄 알았다.

 

코드를 보자

 

코드

a = int(input())
count = 0
memory = 0

for i in range(1, a + 1):
    b = bin(i)[2:]  
    for j in range(len(b)):
        if b[j] == '1':
            memory += 1
            if memory == 2:
                memory = 0
                break
        else:
            memory = 0
    else:
        memory = 0
        count += 1

print(count)

당연히 맞았는 줄 알았는데, 틀렸다길래 멘붕이 왔다.

 

일일이 테스트해봤지만 분명 맞았다..

 

그래서 문제를 다시 읽어보니 2진수 자릿수를 입력하고 출력하는 거였다.

 

그래서 타인의 코드를 보고 그냥 복붙 했다.

 

코드

a = int(input())
dp = [0] * (a+1)

if a >= 1:
    dp[1] = 1
if a >= 2:
    dp[2] = 1

for i in range(3, a+1):
    dp[i] = dp[i-1] + dp[i-2]

print(dp[a])

심지어 더 쉽다 ㅠㅠ

 

배운 점

1. 글을 똑바로 읽자.

'백준' 카테고리의 다른 글

백준 1157 문제풀이 [python]  (2) 2023.06.11
백준 2747 문제풀이 [python]  (0) 2023.06.11
백준 11726 문제풀이 [python]  (0) 2023.06.10
백준 2675 문제풀이 [python]  (2) 2023.06.10
백준 2178 문제풀이 [python]  (2) 2023.06.10
댓글