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

개미굴에서 EOF, 소수점 처리가 포함된 변형 문제while (cin >> n)로 EOF 처리, 소수점 처리 잘 해주고 Trie에 size라는 변수, find 함수에 적당한 식을 추가하면 쉽게 해결할 수있음메모리 초과가 났지만 소멸자가 제대로 작동하지 않았음 >> 소멸자 잘 작동하게 수정하니 바로 해결됨 #include#include#includeusing namespace std;char d[100001][81];struct Trie { bool finish; int size; Trie* next[26]; Trie() :finish(false),size(0) { memset(next, 0, sizeof(next)); } ~Trie() { for (int i = 0; i insert(key + 1)..

자료구조 Trie를 변형해서 풀 수 있는 문제map로 next에 key값으로 string, value에 Trie의 포인터 값을 저장하게끔 map을 만들어 준 후, input 데이터를 저장해준다.dfs형식의 print 함수를 적절히 만들어 next에 저장된 tree 형식의 데이터를 출력 #include#include#include#include#includeusing namespace std;struct Trie { bool finish; map next; Trie() :finish(false) {}; ~Trie() { for (auto it = next.begin(); it != next.end(); it++) delete(it->second); }; void insert(vector vec, in..

자료구조 트라이(Trie) 기초 문제로 해시 테이블을 사용해서 풀 수도 있는 문제 Trie를 문제에 맞게 구현해주면 쉽게 풀 수 있다.insert 도중 finish가 true면 일관성 Xinsert가 끝난 후 finish에 true 값을 저장하려는데 number 배열이 비어있지 않으면 일관성 X #include#include#includeusing namespace std;struct Trie { bool finish; Trie* number[10]; Trie() :finish(false) { memset(number, 0, sizeof(number)); } ~Trie() { for (int i = 0; i insert(key + 1); }};int main(){ int t; scanf("%d", ..

그래프 탐색에 대한 이해도만 있으면 쉽게 풀 수 있는 문제대게 bfs로 풀었던데 귀찮아서 dfs로 풀었다.각 열쇠마다 열지 못한 문의 좌표를 저장하는 벡터를 만든 다음, 새로운 열쇠가 나왔을 때 벡터에 저장되어 있는 열지 못했던 문을 다시 탐색하는 방식으로 구현하여 풀었다. #include#include#include#include #includeusing namespace std;char d[101][101];bool vi[101][101], key[27];int doc = 0, x_size, y_size;vector > blocked[27];int f(int x, int y) { if (d[y][x] == '*')return 0; else if (d[y][x] == '$')doc++; else i..

간단한 그래프 탐색 문제로 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..