✏️ 문제 링크https://www.acmicpc.net/problem/2579 ✏️ 문제 설명 ✏️ 문제 풀이가장 먼저 dp배열을 만들어줬는데 dp[i]는 i번째 계단을 밟을 때 얻을 수 있는 최대의 점수로 지정하였습니다. 그리고 나서 dp[1], dp[2], dp[3]값을 각각 지정해 주었습니다. dp[1] = stair[1]이고 dp[2] = stair[1] + stair[2]이고 dp[3]의 경우를 잘 생각해주어야 합니다. 왜냐면 3번째 계단은 1번째 계단 + 3번째 계단 이거나 2번째 계단 + 3번째 계단인 경우 중 하나이기 때문에 다짜고짜 반복문을 돌리게 되면 dp[3]에 다른 값이 지정되지 않을 수도 있습니다. 그런다음 반복문을 돌리면서 dp[i]의 값을 갱신해 주었습니다.dp[i] = ..
✏️ 문제 링크https://www.acmicpc.net/problem/16929 ✏️ 문제 설명 ✏️ 문제 풀이주어진 배열 안에서 사이클의 유무를 찾는 문제이며, dfs로 접근할 수 있습니다. bfs로도 똑같은 방식으로 문제를 풀어봤는데 자꾸 예제 2번에서 틀리다고 나와서 포기했습니다... 가로와 세로의 길이가 50보다 작거나 같기 때문에 모든 점에 대해서 dfs로 탐색을 해도 시간초과가 발생하지 않습니다. dfs함수에서 조건을 조금만 생각하면 쉽게 풀 수 있습니다다음으로 가고자 하는 mx와 my의 값이 배열의 범위를 벗어나지는 않는가?다음으로 가고자 하는 map[mx][my]가 이전에 방문했던 알파벳 값과 동일한가?다음으로 가고자 하는 visit[mx][my]가 이전에 이미 방문한 적이 없는가? ..
✏️ 문제 링크https://www.acmicpc.net/problem/2589 ✏️ 문제 설명 ✏️ 문제 풀이그냥 단순히 모든 육지인 지점은 찾아서 그 지점에서 가장 먼 거리를 BFS를 탐색해서 구해준 후거리들의 최댓값을 구해주면 됩니다처음에는 트리의 지름을 구하는 방식으로 접근을 해봤는데 계속 2%에서 틀려서...포기 ✏️ 문제 코드#include #include #include using namespace std;struct Node{ int y, x, depth;};const int dy[4] = { -1,1,0,0 };const int dx[4] = { 0,0,-1,1 };int N, M, ret;char adj[50][50];bool visited[50][50];vector> v;void..
✏️ 문제 링크https://www.acmicpc.net/problem/31778 ✏️ 문제 설명 ✏️ 문제 풀이얼마 전 포스텍 open contest에 나왔던 문제입니다.군대에서 짜투리 시간 내서 참가해서 도전했었던 문제인데 계속 풀지를 못했던 문제입니다..분명 딱 봤을 때 투포인터랑 dp를 이용해야 한다는 거는 알았는데 11번 제출해서 모두 틀렸습니다 하하하 거두절미하고 문제 본론으로 넘어가보겠습니다.문자열을 교환하고 PPC 문자열을 만들 수 있는 개수를 출력해야 하는데, 교환은 최대 k번할 수 있습니다.이 말은 꼭 k번을 교환할 필요는 없다는 말입니다. 문자열 교환의 핵심은 P가 최대한 앞으로 C가 최대한 뒤로 가야 합니다.여기서 투 포인터 방식을 이용해서 교환을 해야 합니다. 자세한 내용은 코..
- Total
- Today
- Yesterday
- 알고리즘
- 백준
- C++ Stack
- 백준 풀이
- 스택
- DP
- 스프링 부트 crud 게시판 구현
- c++ string
- 유클리드 호제법
- BFS
- java
- 우선순위 큐
- 카운팅 정렬
- 세그먼트 트리
- HTML5
- 자바스크립트
- 반복문
- C++
- 유니온 파인드
- js
- 자료구조
- 자바
- CSS
- html
- DFS
- 에라토스테네스의 체
- 이분 매칭
- 투 포인터
- 알고리즘 공부
- Do it!
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |