본문 바로가기

파이썬8

[백준_11726] 2×n 타일링 python 오늘은 뭔가 다 하기싫다. 그래서 쉬운문제 풀었다. 이런날도 있는게 아니겠나 # dp 설계 dp = [ [0] * 2 for _ in range(1001) ] # 초기설정 dp[1][0] = 0 dp[1][1] = 1 dp[2][0] = 1 dp[2][1] = 1 # dp 채워넣기 for i in range(3, 1001): dp[i][0] = dp[i-2][0] + dp[i-2][1] dp[i][1] = dp[i-1][0] + dp[i-1][1] # 입력 n = int(input()) # 출력 print(sum(dp[n]) % 10007) 2022. 6. 28.
[백준_17271] 리그 오브 레전설 (Small) python dp를 구현함에 있어서 무지성 세보기는 참 좋은 방법인 것 같다. 다만, 내가 구하는 칸이 어디서로부터 오는지 그 근본을 잘 확인해야 한다. dp = [ [0] * 101 for _ in range(10001) ] for i in range(1, 10001): dp[i][1] = (2 ** i) for i in range(1, 10001): for j in range(1, 101): if i == j: dp[i][j] = 2 elif i j: dp[i][j] = (dp[i-j][j] + dp[i-1][j]) n, m = map(int, input().split()) pri.. 2022. 6. 22.
[백준_2225] 합분해 python dp모르겠으면 진짜 3~4개는 세어보는게 답인 것 같다. 나도모르는 규칙이 나올지도? n, k = map(int, input().split()) dp = [ [0] * 201 for _ in range(201) ] for i in range(1, 201): dp[1][i] = 1 dp[i][1] = i for i in range(2, 201): for j in range(2, 201): dp[i][j] = dp[i-1][j] + dp[i][j-1] print(dp[k][n] % 1000000000) 2022. 6. 21.
[백준_10844] 쉬운 계단 수 python dp = [0 for _ in range(101)] for i in range(101): dp[i] = [0 for _ in range(10)] for i in range(1,10): dp[1][i] = 1 for i in range(2, 101): for j in range(10): if j == 0: dp[i][j] = dp[i-1][1] elif j == 9: dp[i][j] = dp[i-1][8] else: dp[i][j] = (dp[i-1][j-1] + dp[i-1][j+1]) n = int(input()) print(sum(dp[n]) % 1000000000) 2022. 6. 20.
[백준_11727] 2×n 타일링 2 python 처음에 2*2 타일을 못보고 풀어서 애좀 먹었다. dp문제를 보고 바로 dp를 언제쯤 떠올릴 수 있을까. 난 정말 코테가 싫다. # 입력 받기 n = int(input()) # dp dp = [0] * (n+1) # 초기 설정 dp[0] = 1 dp[1] = 1 for i in range(2, n+1): dp[i] = (dp[i-1] + 2*dp[i-2]) % 10007 print(dp[-1]) 2022. 6. 16.
[백준_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.
[백준_10407] 2타워 python h = int(input()) if h == 1: print(2) # 1을 제외한 모든 2타워의 계산값은 else: print(1) # 1이다. 2022. 6. 13.