심심한 개발기록장

심심한 개발기록장

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

심심한 개발기록장

컨텐츠 검색

태그

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

최근글

댓글

공지사항

아카이브

타뷸레이션(2)

  • 백준 1463 - 1로 만들기 (Python)

    문제https://www.acmicpc.net/problem/1463풀이n = int(input())memo = [0]*(n+1)for i in range(2,n+1): k=[memo[i-1]] if i%3==0: k.append(memo[i//3]) if i%2==0: k.append(memo[i//2]) memo[i] = min(k)+1print(memo[n]) 다이나믹 프로그래밍(DP) 문제이다.연산을 통해 n을 1로 만든다는 생각 보다는1부터 시작해서 n으로 만든다는 생각으로 풀이하였다. 어떤수 n을 만들기 위해 필요한 연산의 가짓 수는 총 3가지를 고려해야한다.1. n/3를 만드는데 필요한 연산 수 +1 (n이 3으로 나누어 떨어질 때)2. n/2를..

    2024.05.19
  • 백준 11053 - 가장 긴 증가하는 부분 수열 (Python)

    문제 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 풀이 n = int(input()) numbers = list(map(int,input().split())) memo = [0]*n for i in range(n): target = [0] for j in range(i): if numbers[j] < numbers[i]: target.append(memo[j]) ..

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

티스토리툴바