심심한 개발기록장

심심한 개발기록장

  • 분류 전체보기 (55)
    • 공부 (0)
    • 개발 (1)
      • 웹 (0)
      • 인공지능 (0)
    • 알고리즘 (53)
    • 잡담 (1)
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

심심한 개발기록장

컨텐츠 검색

태그

python 알고리즘 구현 dp 수학 문자열 피보나치 수열 정렬 코딩 백준 동적계획법 프로그래밍 재귀함수 그리디 알고리즘 타일링 타뷸레이션 다이나믹 프로그래밍 파이썬 도가뉴 다이나믹프로그래밍

최근글

댓글

공지사항

아카이브

타일링(2)

  • 백준 11727 - 2×n 타일링 2 (Python)

    문제 https://www.acmicpc.net/problem/11727 풀이 n = int(input()) dp = [-1]*(n+1) dp[0] = 1 dp[1] = 1 for i in range(2,n+1): dp[i] = 2 * dp[i-2] + dp[i-1] print(dp[n]%10007) 이 문제에서 2×N을 채우는 경우의 수는 세가지로 나뉜다. 1) 2×(N-2)를 채우고 = 모양을 더하는 경우 2) 2×(N-2)를 채우고 ㅁ 모양을 더하는 경우 3) 2×(N-1)을 채운 뒤 l 모양을 더하는 경우 즉, 2×N을 채우는 경우의 수는 2×(N-2)를 채우는 경우의 2배에 2×(N-1)을 더한 값이다. N=1일때 경우의 수는 1, N=2일때 경우의 수는 3이라는 것을 기본값으로 해서 동적계획법..

    2024.02.06
  • 백준 11726 - 2×n 타일링 (Python)

    문제 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net 풀이 n = int(input()) dp = [-1]*(n+1) dp[0] = 1 dp[1] = 1 for i in range(2,n+1): dp[i] = dp[i-2] + dp[i-1] print(dp[n]%10007) 이 문제의 정답 코드는 피보나치 수열을 구하는 방식과 동일하다. 그 이유를 살펴보자면 2×N을 채우는 경우의 수는 아래 두가지로 나뉜다. 1) 2×(N-2)를 채우고 = 모양을 더하는 경우 2)..

    2024.02.06
이전
1
다음
심심한 개발기록장
© 2018 TISTORY. All rights reserved.

티스토리툴바