심심한 개발기록장

심심한 개발기록장

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

심심한 개발기록장

컨텐츠 검색

태그

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

최근글

댓글

공지사항

아카이브

타뷸레이션(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.

티스토리툴바