본문 바로가기
반응형

백준 파이썬4

백준 11726: 2xn 타일링(python) dp문제 2x1 타일은 1 가지 방법 2x2 타일은 2 2x3 타일은 3 2x4 타일은 5 2x5 타일은 8 ... 2x9 타일은 55 dp[i] = dp[i-1] +dp[i-2]의 점화식이 나온다 N = int(input()) dp = [0]*1001 dp[1] = 1 dp[2] = 2 for i in range(3,1001): dp[i] = dp[i-1]+dp[i-2] print(dp[N] % 10007) 2022. 3. 4.
백준1009: 분산처리(Python) 테스트 케이스에서 지수가 엄청 큰 경우에는 파이썬에서 형식을 초과하기 때문에 규칙성을 찾아서 해결하였다 1 ~ 9까지 제곱한 수들의 일의 자릿수는 규칙성을 갖는다 1) 10으로 나누어지는 데이터들은 10번 컴퓨터가 처리한다 2) 밑이 1 ~ 9 인 경우는 s 배열에 저장된 규칙성으로 컴퓨터 위치를 찾는다 N = int(input()) for i in range(0,N): a,b = map(int,input().split()) s = [[1],[2,4,8,6],[3,9,7,1],[4,6],[5],[6],[7,9,3,1],[8,4,2,6],[9,1]] a %= 10 if a % 10 != 0: c = b % len(s[a-1]) print(s[a-1][c-1]) else: print(10) 2022. 1. 10.
백준1463: 1로 만들기(Python) ex) 10이라는 수는 10 -> 9 -> 3 ->1 (1을 빼고 3으로 두 번 나눈다) : 연산 횟수는 3 10 -> 5 -> 4 -> 2 -> 1 (2로 나누고 1을 빼고 2로 두 번 나눈다): 연산 횟수는 4 n = int(input()) d = [0]*(n+1) for i in range(2,n+1): d[i] = d[i-1]+1 if i %2 == 0: d[i] = min(d[i//2]+1,d[i]) if i%3 ==0: d[i] = min(d[i//3]+1,d[i]) print(d[n]) 2021. 12. 20.
백준14501: 퇴사 (Python) https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 백준이의 최대 수익을 내기 위한 코드 day = int(input()) Ti = [] Pi = [] salary = [0 for i in range(day+1)] sum = 0 for i in range (0,day): T,P = map(int,input().split()) Ti.append(T) Pi.append(P) for i in range(0,day): sum = max(sum,salary[i]) if i+Ti[i]>day: continue salary[i+Ti[i]] = max(sum+Pi[i],salary[i+Ti[i]]).. 2021. 12. 2.
반응형