다이나믹 프로그래밍 이중for를 이용해 i값을 증가시켜주며 그 전의 값중 작으면서도 가질 수 있는 개수가 가장 큰것을 찾아 개수를 초기화 => 이용하는 값이 배열에 이미 저장된 값이라는 것에서 동적계획법인 다이나믹을 활용하면 됨. 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()) list1 = []#입력받은 수 array = [..
s = int(input()) queue = [] where = [] for k in range(0,s): queue.clear() print("queue clear? %d" %len(queue),end = '') n,m = map(int,input().split()) for i in range(0,n): queue.append(int(input())) where.append(i) t = queue[m] size1 = len(queue) while True: if max(queue)==queue[0]: if where[0]==m: print("%d" %(size1- size2),end = '') break else: queue.pop(0) where.pop(0) else: queue.append(queu..
www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 스택을 구현할 때, class사용해도 좋지만 지금은 복잡한 문제가 아니기 때문에 class는 사용하지 않았다. 1. push()에 대해 c언어에서는 top변수를 사용했지만 python은 .append()를 사용해서 리스트에 추가할 수 있다. 2. pop()에 대해 c언어에서는 top변수를 줄여가며 사용했지만 python은 del stack[-1]로 가장 마지막에 있는 원소를 지울 수 있고 re..
array= [0]*10 check=[0]*10 n = int(input()) m = int(input()) def fun(n,m,cnt): if cnt==m: for i in range(0,cnt): print(array[i],end = '') print() return else: for i in range(1,n+1): if check[i]!=1: check[i] = 1 array[cnt] = i fun(n,m,cnt+1) check[i]=0 fun(n,m,0) 배열 출력시, %d를 안 쓰고 array[i]를 사용해서 그냥 출력이 가능 input할 때, map과 split()을 활용하면 쉬움 => n,m = map(int,input().split())으로 바꿔서 사용해봄 cnt를 통..
알고리즘 분류 : 재귀함수 재귀함수는 stack과 비슷하다. 깊게 깊게 들어가서 결과를 받아와 이전 과정으로 돌아간다. 이때, 패턴만 파악하면 쉽게 사용이 가능하다. 1. 팩토리얼 -10872 def fac(n): if n==1: return 1 return fac(n-1)*n n = int(input()) print(fac(n)) 2. 피보나치 수열 - 10870 def fun(n): if n==1: return 1 if n==2: return 1 return fun(n-1)+fun(n-2) print(fun(int(input())))
www.acmicpc.net/problem/13866 13866번: 팀 나누기 입력은 네 개의 정수 A, B, C 및 D가 포함된 한 줄로 구성되며 4명의 스킬 레벨이 주어진다. (0 ≤ A ≤ B ≤ C ≤ D ≤ 104) www.acmicpc.net 1. ha (sum/2)의 값 총합을 2팀이기때문에 2로 나누면 중간점을 구할 수 있음 차의 최소를 구해야하기에 사용하며 3.번과 함께 이해하면 쉬움 2.for문 이중 for문을 활용해서 팀마다 가질 수 있는 level의 list에 1을 저장 3. for문 ha부터 0까지 탐색하며 level 두개의 합을 탐색하며 가장 먼저 발견된 값을 활용 4. 차의 최소구하기 3.에서 발견한 값과 sum-발견한 값의 차이를 구하면 차의 최소가 됨 list=[] sum=..
- Total
- Today
- Yesterday
- 효율적인방법찾기
- DRF 회원관리
- 핀테크 트렌드
- 기사작성 대외활동
- LAMBDA
- 10866 백준
- 온라인프로필 만들기
- c++덱
- 4963 섬의개수
- stack 컨테이너
- 백트래킹(1)
- 스택 파이썬
- 모듈 사용법
- 11053 백준
- 백준 숫자놀이
- 딥러닝입문
- 기본 텍스트 분류
- CREATE ASSERTION
- 백준 15650 파이썬
- 시뮬레이션 c
- 코딩월드뉴스
- mm1queue
- 백준 11053 파이썬
- 소프트웨어공학설계
- CSMA/CD란?
- 13886
- 백준 4963
- 백준 10866
- 영화 리뷰 긍정 부정 분류
- 파이썬 알아두면 유용
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |