Algorithm(BOJ, Python)/Dynamic Programing56 [백준_1074] Z python # 입력 받기 N, r, c = map(int, input().split()) # ans 초기 설정 ans = 0 # 4사분면으로 나눠서 생각 -> 계속 좁혀 갈 예정 while N != 0: N -= 1 # 1사분면에 해당할 경우 if r = (2 ** N): ans += (2 ** (2 * N)) # 그 사분면의 맨 왼쪽 위 꼭짓점을 더해줌 c -= (2 ** N) # 다음 좁혀진 4사분면으로 이동 # 3사분면에 해당할 경우 elif r >= (2 ** N) and c < (2 ** N): ans += (2 ** (2 * N)) * 2 # 그 .. 2022. 6. 15. [백준_1309] 동물원 python n = int(input()) dp = [0] * (n+1) for i in range(n+1): dp[i] = [0,0,0] dp[1][0] = 1 # 처음에 하나도 선택하지 않은 경우 dp[1][1] = 1 # 처음에 왼쪽을 선택한 경우 dp[1][2] = 1 # 처음에 오른쪽을 선택한 경우 for i in range(2, n+1): dp[i][0] = (dp[i - 1][0] + dp[i - 1][1] + dp[i - 1][2]) % 9901 # 이번에 선택하지 않는것은 전에 왼쪽을 선택했어도, 오른쪽을 선택했어도, 선택하지 않았어도 가능함 dp[i][1] = (dp[i - 1][0] + dp[i - 1][2]) % 9901 # 이번에 왼쪽을 선택하는것은 전에 선택하지 않았거나, 오른쪽을 선택했을 .. 2022. 6. 14. 이전 1 2 3 4 다음