일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- branch
- html5
- insomnia
- map
- PROJECT
- ucpc 2023 예선 d번
- 백준 28303번
- MongoDB
- 백준 32028번
- 더 흔한 색칠 타일 문제
- JavaScript
- string
- ERD
- router
- pm2
- 지금 자면 꿈을 꾸지만
- Github
- MySQL
- ccw 알고리즘
- Next
- 자바스크립트
- ucpc 2023 예선 i번
- HTTP
- 그리디
- Prisma
- ucpc 2024 예선 e번
- 백준 32029번
- localstorage
- 게임 서버 아키텍처
- Express.js
- Today
- Total
목록전체 글 (98)
dh_0e
너무 간단한 그리디, 구현 문제 #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..
2024 UCPC 예선 E번으로, 대회 당시에 내가 풀었던 문제다. 간단한 그리디 문제지만 접근을 잘못해서 시간을 많이 소비했었다. 대회가 끝나고 다시 풀어보니 너무 간단해서 앞으로 난이도를 알 수 없는 문제에 너무 쫄지 말자는 교훈을 줬던 문제이다. 해결 방법$A$를 기준으로 정렬하고, n개의 문제에 대해 브루트 포스 형식으로 먼저 끝낼 과제를 정한 뒤, 단축된 시간으로 풀 수 있는 문제의 수들을 구하면 되는 간단한 로직이다. n값이 아주 작기 때문에 $O(n^3)$도 가능하다.#include#includeusing namespace std;int t[101], vi[101];int main(){ int n, a, b, answer=0, c, solve; scanf("%d %d %d", &n, &a, ..
2024 UCPC 예선 D번 문제로, 팀원이 아쉽게 해결하지 못한 문제였다. 대회가 끝나고 풀어보니 본인도 2시간 넘게 걸렸다.. 해결 방법 사실 이분 탐색, 자료 구조를 활용한 트리를 만드는 구현 문제에 가까운데 너무 복잡하다. 정리하는데 노트가 2장...1. 입력에서 받는 노드 정보를 저장해 놓고, 노드의 깊이($H_{i}$)를 기준으로 정렬한다.2. 깊이가 낮은 노드(root)부터 시작하여 모든 노드의 위치를 구한다.이때, 내 부모 노드에 저장된 값을 바탕으로 해당 노드의 자식이 될 노드들의 최솟값과 최댓값을 구하여 저장한다.ex. root노드의 왼쪽 자식 노드인 n노드가 있다 가정하면, n노드의 왼쪽 자식들은 n노드의 값보다 작아야 하며, 오른쪽 자식 노드들은 n노드의 값과 큼과 동시에 root노..
2023 UCPC 예선 K번 문제로, 처음엔 그리디 + 우선순위 큐를 사용하여 시도해 봤지만, 큐가 정렬이 되는 기준을 잡는 것이 힘들었을뿐더러, $a_{i}$값이 중복되는 경우에 항상 답을 도출한다는 보장이 없었다. 해결 방법 답으로 출력될 세미나 수의 최솟값($c$)에 대하여 이분 탐색으로 접근해서 bst 함수에서 그리디하게 $i$번째 세미나의 시작 시간을 정한다. 이때 로직은 $c$가 답으로 도출될 수 있게끔 세미나의 시작 시간을 최대한 빠르게 지정한다 (물론 $a_{i}$가 속하게끔). 이후 모든 세미나의 범위에 $a_{i}$가 속하는지 확인하여 true or false를 반환한다. 반환한 값을 바탕으로 이분 탐색이 끝나면 세미나 수의 최솟값을 구할 수 있으며 이분 탐색 + 그리디로 $O(nlog..