problem 문제링크: https://www.acmicpc.net/problem/21758 입력 : N, 각 장소의 꿀의 양 출력 : 최대의 꿀의 양 solution 두 꿀벌의 위치와 벌통의 위치를 3가지로 나눠 각 경우중 가장 큰 값 출력 벌통이 오른쪽 끝에 있는경우 벌통이 왼쪽 끝에 있는경우 벌통이 두 벌 사이에 있는 경우 code n = int(input()) ans=0 a = list(map(int,input().split())) s=[] s.append(a[0]) for i in range(1,n): s.append(s[i-1]+a[i]) for i in range(1,n-1): ans=max(ans,s[n-2]-a[0]+a[i]) for i in range(1, n - 2): ans = ma..
problem 문제링크: https://www.acmicpc.net/problem/11726 알고리즘 : 다이나믹 프로그래밍 입력 - n solution 2*n 크기의 직사각형을 2*1 의 타일로 채우는 경우의 수는 n+1 번째의 피보나치수와 같다. dp[] 배열의 1, 2번째에 피보나치수 1, 1 을 할당해둔다. n까지 피보나치 수를 구해 10007로 나눈 나머지 값을 dp의 i 번째에 넣는다. n+1 까지 피보나치 (수 % 10007) 을 한 값을 구하고 dp[n]을 출력한다.[ [code] n = int(input()) dp = [1, 1] for i in range(2, n + 1): dp.append((dp[i - 1] + dp[i - 2]) % 10007) print(dp[n])
//union - find #include #include #define MAX 2147483647 using namespace std; int parent[MAX]; int uf_find(int n) { if(n == parent[n])return n; //n 이 루프노드라면 반환 return parent[n] = uf_find(parent[n]); //아니라면 제귀함수를 통해 루프노드 찾기 } bool uf_union(int a, int b) { a = uf_find(a); //부모노드 찾기 b = uf_find(b); if(a == b) return false; //부모노드가 같다면 true반환(같은 그룹에 속하) parent[max(a, b)] = min(a, b); //다르다면 값이 작은 노드를..
- Total
- Today
- Yesterday
- 쇠막대기
- 파이썬
- 꿀따기
- 👼
- 21758
- 괄호
- 직업군 추천
- c++
- FIBO
- 피보나치
- python
- 7567
- 카카오 2021 블라인드 테스트
- 프로그레머스
- 넓이
- 더하기
- 2
- HackCTF
- openCV
- 나머지
- 스택
- math
- 백준
- boj
- 1
- web
- forensic
- 다익스트라
- programmers
- 4
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |