일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ccw 알고리즘
- DP
- html5
- JavaScript
- Keys
- vector insert
- router
- string
- MySQL
- localstorage
- 그래프 탐색
- 그리디
- 트라이
- Github
- 게임 서버 아키텍처
- Express.js
- Prisma
- PROJECT
- branch
- map
- pm2
- HTTP
- Next
- 이분 탐색
- 자바스크립트
- 백준 1918번
- insomnia
- MongoDB
- ERD
- trie
- Today
- Total
목록분류 전체보기 (126)
dh_0e

간단한 그래프 탐색 문제로 dfs 구현만 잘하면 쉽게 푸는 문제visit 체크를 해주는 배열에 각 학생들의 상태를 4개로 분리하였다. 아래 코드 기준으로 vi[] 배열에 저장된 학생들의 상태는-1) cycle을 탐색했지만 팀에 들어가지 못한 상태 0) 아직 cycle을 찾아보지 않은 상태 1) cycle을 찾아 팀에 들어간 상태 2) cycle을 찾는 중인 상태로 cycle을 탐색하다 next 학생의 vi에 저장된 값이 2(cycle을 찾는 중인 상태)라면 cycle이 완성된 것이므로 next 값을 return 하여 next 학생이 나올 때 까지의 학생들의 상태를 1로 바꿔주고, next 학생이 나오면 그 다음 학생부턴 0 값을 return 하여 상태를 -1로 바꿔주었다. dfs 풀이#include#in..

구현은 매우 쉽지만 발상하는데 시간이 꽤 걸렸던 문제A B의 합, C D의 합을 모두 구한 배열(각각 최대 1600만) 2개를 만든 뒤 정렬하여 two pointer, binary search를 사용하여 합이 0인 쌍의 개수를 구하면 된다. #include#include#includeusing namespace std;typedef long long ll;vector vec1, vec2;ll a[4001], b[4001], c[4001], d[4001];int binary_search(int en, int target) { int st = 0; while (st 0) n2--; else n1++; } printf("%lld\n", dap); return 0;}

위상 정렬 기초를 다지기 좋은 문제 #include#include#include#includeusing namespace std;deque dap;int vi[1001];int d[1001][1001];int n, m;int find(){ for(int i=1; i

너무 간단한 그리디, 구현 문제 #includeusing namespace std;int n, m, k;char d[501][501];pair f(int y, int x) { int c, max=0; int vi[30] = { 0 }; for (int i = y; i pa=f(i, j); d[i][j] = pa.second; answer += (n/k)*(m/k) - pa.first; } } printf("%d\n", answer); for (int i = 0; i

2023 UCPC 예선 I번 문제로, 누적 합을 사용하여 쉽게 풀 수 있는 문제이다. 해결 방법 SN 모양의 자석으로 누적 합을 구하며 에너지 충전량의 최댓값을 구한다. 이때, S극이 1, N극이 5라고 가정하고, S극의 소모값이 두 수의 차(4)에 K를 곱한 값보다 크다면 S극을 N-1(4)로 옮겨준다. 이외에 N-S가 1보다 크면 N극을 한 칸씩 옮겨준다. NS 모양의 자석도 똑같은 로직으로 최댓값을 구하여 자석을 배치했을 때 배터리의 에너지 변화의 최댓값을 구한다.#define _CRT_SECURE_NO_WARNINGS#include#includeusing namespace std;int d[500001], rd[5000001];int main(){ int nn, k, s=1, n=2, answer..