본문 바로가기

PS/DP4

[백준] 12852번: 1로 만들기 2 타일링 파이썬 https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net DP는 많이 풀어보는게 좋다고 해서 계속 푼다 파이띵 풀이 일단 문제에서 과정까지 출력해야하니 값테이블 말고 경로계산용 테이블도 만들어야함띠. 그래서 값테이블 arr, 경로계산 용은 arr2 뭔가 코드가 깔끔하지 않은 기분............................... 죄송티비 저는 계산용 테이블에 1, 2, 3 일케 저장했는데 바로 i-1, i//2, i//3 저장하는게 마지막 경로 출력 할때 더 편한듯. import sys n = int(sys.stdin.readline()) arr = [.. 2024. 3. 5.
[백준] 11727번: 2×n 타일링 2 타일링 파이썬 https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 이전에 푼 2×n 타일링이랑 별 차이없는 문제 진짜 약간 수정하면됨 풀이 초기값 D[2] 부분 수정해주고 점화식 그냥 D[i-2]에 2곱하면 끝 ㅅㄱ n = int(input()) D = [0 for _ in range(n+2)] D[1] = 1 D[2] = 3 for i in range(3, n+1): D[i] = (D[i-1] + D[i-2]*2)%10007 print(D[n]) 너무 날먹이니 저번 문제 해설 글 링크도 달.. 2024. 3. 4.
[백준] 11726번: 2×n 타일링 타일링 파이썬 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 코드는 진짜 간단한데 점화식을 생각 못해냄... 난 바보야.. 풀이 맨 왼 쪽 칸이 1X2 직사각형인 경우 D[i-1] 맨 왼 쪽 칸이 2X1 직사각형 2 개인 경우 D[i-2] 합치면 2Xi 직사각형을 채우는 경우의 수 D[i] n = int(input()) D = [0 for _ in range(n+2)] D[1] = 1 D[2] = 2 for i in range(3, n+1): D[i] = (D[i-1] + D[.. 2024. 3. 4.
[백준] 1149번: RGB거리 파이썬 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net DP(Dynamic Programing)를 풀기 위해서는 먼저 테이블을 정의해야 하고 점화식을 찾은 후에 초기 값을 정해야 한다. 일단 점화식만 찾고나면 그 뒤는 초기 값을 채워넣은 후에 반복문을 돌면서 배열을 채우면 끝.. 그치만 그 과정에서 능지가 좀 필요한 거같다.. 난. 능지부족; 해서 걍 여러개 풀면서 감 잡으려한다.. 풀이 일단 초기 값을 정하는게 중요 D[i][0.. 2024. 3. 4.