알고리즘 119

<백 준> 11726번 파이썬 알고리즘

- 다이나믹 알고리즘 n = int(input()) d = [1, 2] for i in range(2, n): d.append(d[i-1]+d[i-2]) print(d[n-1] % 10007) 9095번에서 푼 풀이방식과 유사한 것 같아서 해보니까 아래와 같이 값이 맞아 떨어졌다 위의 방식을 기반으로 알고리즘을 구현했다 www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net

알고리즘 2021.01.13

<백 준> 1003번 파이썬 알고리즘

- 다이나믹 알고리즘 tc = int(input()) d = [] for i in range(tc): d.append(int(input())) arr0 = [1,0,1] # 0 1 2 ## 0 개수 arr1 = [0,1,1] # 0 1 2 ## 1 개수 for i in range(3, 41): arr0.append(arr0[i-1]+ arr0[i-2]) arr1.append(arr1[i-1]+ arr1[i-2]) for j in range(len(d)): print(arr0[d[j]], end=" ") print(arr1[d[j]]) www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. ..

알고리즘 2021.01.13

<백준> 7576번 파이썬 알고리즘

www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net from collections import deque m, n = map(int,input().split()) array = [] for i in range(n): array.append(list(map(int,input().split()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(): while queue: x, y = queue.popleft() ..

알고리즘 2021.01.08