전체 글

알고리즘/정렬

정렬

선택 정렬 제자리 정렬 알고리즘 중 하나 가장 작은 것을 선택해 앞으로 보내는 과정을 N-1번 반복함 시간 복잡도 O(N²) 매우 비효율적 1. 주어진 데이터 중 작은 데이터 찾기 2. 맨 앞의 데이터와 교체 3. 맨 앞의 데이터를 뺀 나머지 데이터들을 같은 과정으로 교체 삽입 정렬 필요할 때만 위치를 바꿈 데이터가 정렬되어 있을 때 효율적 특정한 데이터를 적절한 위치에 삽입함 두 번째 데이터부터 시작 ( 첫 번째 데이터는 그 자체로 정렬되어 있다고 판단함) 정렬이 이뤄진 데이터는 항상 오름차순을 유지하고 있음 시간 복잡도 O(N²) (최선의 경우 O(N), 정렬이 거의 되어있는 경우 퀵 정렬보다 강력함) 1. 두 번째 데이터부터 앞에서부터 차례대로 비교하며 자신이 들어갈 부분을 찾음 2. 그 위치에 데..

DB

MySQL 접속, 나가기

MySQL 접속 C:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -u root -p MySQL 나가기 >quit

알고리즘/DFS BSF

백준 2667 - 단지 번호 붙이기

연결된 단지가 몇 개인지, 각 단지의 집이 몇 개인지 출력하는 문제 dx와 dy로 4방향을 정함 (상, 하, 좌, 우) for문으로 방문하지 않은 모든 집에서 dfs 함수를 실행함 (연결되지 않은 집은 dfs로 방문할 수 없기 때문에) dfs함수 안에서 상,하,좌,우 4 방향으로 연결된 집을 찾고 연결되어 있으면서 방문하지 않았다면 dfs 각각의 단지들의 집의 개수를 cnt로 구한 후 answer 벡터에 각각 저장 #define _CRT_SECURE_NO_WARNINGS #include #include #include #include using namespace std; bool arr[26][26] = { false }; //방문 여부 확인 배열 int n[26][26]; int dx[4] = { 0,..

알고리즘/DFS BSF

백준 2606 - 바이러스

DFS로 풀었음 시작이 1번 정점이어서 DFS(1)을 한 후 연결된 정점이 있을 때마다 cnt++을 해줬음 cnt 값이 정답 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; bool arr[101][101] = { false }; //연결되었는지 확인하는 배열 bool dfsVisited[101] = { false }; //dfs와 bfs에서 사용할 정점 방문 여부 배열 int N, M; int cnt = 0; void DFS(int v) { //시작할 위치, 함수 내에서 출력함 dfsVisited[v] = true; for (int i = 1; i

알고리즘/DFS BSF

백준 1260 - DFS와 BFS

각 정점들의 방문 여부를 확인하는 배열 visited를 사용함 인접 행렬로 그래프 구현 (bool형 배열로 연결되었는지 확인함) 양방향 간선이라서 두 정점 모두 연결되어 있다고 구현 DFS와 BFS 둘 다 방문하지 않았고 연결되어 있다면 DFS/BFS하도록 함 DFS는 재귀 함수로 구현 BFS는 queue로 구현 #define _CRT_SECURE_NO_WARNINGS #include #include #include using namespace std; #define MAX_VERTICES 10000 bool arr[1001][1001] = { false }; //연결되었는지 확인하는 배열 bool dfsVisited[1001] = { false }; //dfs와 bfs에서 사용할 정점 방문 여부 배열 ..

git

git add 취소

git add 취소 git reset HEAD 파일명

git

git 폴더 올리기

git remote (올릴 위치 선택) 경로 지정 - 상위 폴더로 경로 지정해야함 git remote -v git remote origin 주소 연결된 주소 지우고 싶으면 git remote remove origin 폴더 올리기 git add 폴더명/ git commit -m "add" git push git push origin main 안되면 강제로 올려버리기 git push -u origin main --force 폴더 잘못 올렸을 때 git rm --cached -r 폴더명/ git commit -m "delete folder" 기본적으로 올릴때 git status git add * git commit -m "" git push origin main git status 만약 하위 폴더에서 변경된 ..

알고리즘/DFS BSF

DFS/BFS

그래프 vertex(정점)(node, 노드), edge(간선)으로 구성됨 트리도 그래프의 일종 두 노드가 연결되어 있음 == 두 노드는 인접함 구현 방법 인접 행렬 (Adjacency Matrix) 2차원 배열로 그래프의 연결 관계 표현함 연결된 정점은 1로, 아니면 0 (또는 무한 비용 INF) 넣기 - 무조건 2차원 배열을 만들어야 해서 불필요한 공간 필요함 인접 리스트 (Adjacency List) 연결 리스트로 그래프의 연결 관계 표현함 정점의 리스트 배열을 만들어 연결된 정점들을 배열에 넣어서 표현 연결된 정보만을 저장해서 메모리를 효율적으로 사용함 연결된 데이터 하나씩 확인해야 해서 두 노드 연결되어 있는지에 대한 정보 얻는 속도가 느림 vector G[5]; //1~5까지의 정점 가진 그래프..

hahihi
히호 노트