먼저 첫번째로 Position을 통한 파싱 방법이다. 아래의 코드를 보게 되면, Fpos, Lpos 두개의 변수를 선언하게 되는데, 각각 find_first_not_of, find_first_of 를 통해서 값을 받는다. size_t find_first_not_of(const char* s, size_t pos); -> str에서 s의 값이 아닌 첫 번째 위치 반환. size_t find_first(const char* s, size_t pos); -> str에서 s의 값이 존재하는 첫 번째 위치 반환. 이렇게 반환한 값을 토대로, substr을 하면서 값을 나눈다. #include #include #include void parse_to_position(const string& str, vector& ..
사용언어 : C++ BFS 사용하여서, 해결하면 된다. 다만 여기서 주의할 점은 날짜별로 체크하기 때문에, q.size만큼 다 돌린후 날짜 + 1을 하였다. #include #include #include #include using namespace std; #define MAXR 1001 vector arr; int visit[MAXR][MAXR] = { 0 }; int coun; queue q; void BFS(); int check[4][2] = { {1,0},{-1,0},{0,1},{0,-1} }; int N, M; bool compare(int i, int j) { return j < i; } int main() { ios_base::sync_with_stdio(false); cin.tie(0)..
사용언어 : C++ 자료구조 공부 및 알고리즘 공부를 위해서 27779번 문제를 풀어보았습니다. 여기서 저도 인접행렬을 통해서 문제를 풀어보려고 했으나, 배열 크기가 너무 커서 아예 생성조차 되지 않았습니다. 그래서 두번째로, 인접리스트를 공부하여 풀어보았습니다. DFS 자체는 깊이 우선탐색이기 때문에 하나를 깊게 들어간 후 백트래킹을 통해서 안간 곳이 있나 확인하면서 나오는 알고리즘입니다. #include #include #include using namespace std; #define MAXR 100001 vector arr[MAXR]; vector visit(MAXR, 0); int coun; void DFS(int start); int main() { ios_base::sync_with_stdi..
사용언어 : C++ 심심해서 Vector을 그냥 만들어 봤습니다. 심심할때 마다 기능을 추가할 예정이니 간단하게만 봐주세요! #include template class Vector { public: Vector() { this->size = 0; capacity = 5; data = new T[capacity]; } Vector(int num) { this->size = 0; capacity = num; data = new T[num]; } void push_back(T n) { if (size == capacity) { resize(capacity*2); } data[size++] = n; } void resize(int n) { capacity = n; T* tmp = new T[capacity]; ..
- Total
- Today
- Yesterday
- 백준
- queue
- 고양이
- 정보보안
- 링크드 리스트
- 야경
- BFS
- 학교
- 자료구조
- Select모델
- 시스템보안
- 드림핵
- 보안
- 컨퍼런스
- 레지스터
- 스레드풀
- 더블버퍼링
- Dreamhack
- STL
- 지뢰찾기
- 인제대학교
- 멀티쓰레드
- c++
- 워셜알고리즘
- 개발
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |