일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- MST
- 이분탐색
- 비트마스크
- upper_bound
- 다이나믹 프로그래밍
- 생활코딩
- 그리디 알고리즘
- 평창동계올림픽
- DP
- BOJ 2098
- 안드로이드 스튜디오
- 다음 지도 api
- 백트레킹
- yolo
- 다음 API
- 영어회화 100일의 기적
- boj
- 위상정렬
- multiset
- BFS
- 언어의 온도
- Segment Tree
- 성화봉송
- 창훈쓰다
- 외판원 순회
- lower_bound
- 캘리그라피
- 삼성 코딩테스트
- 인간이 그리는 무늬
- 성화봉송주자
- Today
- Total
목록Honey Night (250)
Hoon222y
https://www.acmicpc.net/problem/2293https://www.acmicpc.net/problem/2294 각각 동전 1, 동전 2 의 문제이다. n종류의 동전을 이용하여 m이라는 값을 만드는 문제였다. 처음에 접근했을때는 dp는 dp인데 2차원으로 dp[i][j] 를 i번째 숫자까지 이용해서 j를 만드는 방법으로 접근을 했는데 하다가 계속 삽질을 한.... 간단하게 접근해보면 1차원 dp로도 문제를 해결할 수 있다. 이렇게 기록하는 이유는 이러한 문제를 1차원으로도 2차원 dp느낌을 낼 수 있어서이다. 동전 1의 경우 점화식을 dp[j]를 j값을 만드는데 가능한 경우의 수 로 두고 식을 세우면 dp[j] +=dp[j-arr[i]] ( arr[i] = i번째 숫자 ) 라고 할 수 ..
https://www.acmicpc.net/problem/1509 입력되어진 문자열을 팰린드롬들로 분할하였을 때 그 분할개수의 최소값을 출력하는 문제이다. 최소값을 구하는 문제라고 적혀있는 것처럼 DP로 접근을 해보자. dp 배열의 개념을 먼저 잡고 가자면 dp[i] 는 문자열 i번째 문자까지 갔을 떄 필요한 최소한의 팰린드롬 개수이다. 따라서 점화식을 새운다면 dp[i] = min(dp[j-1])+1 ( 여기서 i와 j는 팰린드롬 일 경우 )이 될 것이다. 따라서 먼저 i와 j가 팰린드롬인지를 판별하는 함수를 먼저 만들고 점화식대로 문제를 해결해나가면 된다. 123456789101112131415161718192021222324252627282930313233343536373839404142434445..
https://www.acmicpc.net/problem/11729우리가 평소에 알고 있던 하노이 탑을 이동시키며 그 경로를 출력하는 문제이다. 처음 문제를 보았을때는 시뮬레이션 해보며 특정순서에는 특정 규칙에 따라 이동을 한다고 생각하였는데 .... 뭔가 삽질을 하는것 같았다. 해당문제는 분할정복, 즉 dnc로 접근을 해볼 수 있다. 해당 하노이의 탑에서 1번에서 3번으로 옮기려면 어떤 과정을 거쳐야 할까? n개의 탑을 옮기기 위해서는 먼저 1번부터 n-1번까지 2번으로 옮기고, n번째 탑을 3번으로 옮기고, 1부터 n-1개의 탑을 3번으로 옮기면 된다. 정리를 하자면 solve(n,x,y) 는 solve(n-1,x,6-x-y) 후 n번째 판을 3번으로 옮기고, solve(n-1,6-x-y,y) 를 해..
https://www.acmicpc.net/problem/10816해당 문제는 주어진 N개(1
123456789101112#include #include using namespace std;int main() { char c; while ((c = getchar()) && c != EOF) { printf("%c",c); } return 0;} Colored by Color Scriptercs이렇게 입력을 받으면
이 문제를 풀기전에 이분그래프가 무엇인지 먼저 설명을 하도록 하겠다.이분 그래프란 위 그림처럼 A,B처럼 반반으로 나눌수 있는 그래프를 말한다. 즉, 모든 간선의 끝이 한쪽은 A 한쪽은 B에 속하는 그래프를 말한다.이분 그래프를 단순히 구현하는 문제가 바로 https://www.acmicpc.net/problem/1707 이다.해당 문제의 경우 bfs혹은 dfs를 통하여 방문하는 지점의 점수를 각각 1,2로 다르게 준 후 마지막에 비교를 하면 된다. 그리하여 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include #incl..
위상정렬 (Topological sort) 이란 어떠한 일을 하는 순서를 결정해주는 정렬이라고 할 수 있다. 간단하게 생각해보면 일의 우선순위를 결정하는 것이다.코드로 살펴보도록 하자 1234567891011121314151617181920212223242526272829for(int i=0;i
123456789void eratos(){ for (int i = 2; (i*i)
https://www.acmicpc.net/problem/2156일렬로 있는 포도주를 일정 규칙에 따라서 마실 때 최대로 마실 수 있는 양을 구하는 DP문제이다. 123456789101112131415161718192021222324252627282930313233343536373839404142#include #include #include using namespace std;int n;int dp[3][22222];int arr[22222];int main(){ memset(dp,0,sizeof(dp)); memset(arr,0,sizeof(arr)); scanf("%d" , &n); for(int i=1;i