일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 조세퍼스 순열
- dfs
- 백준 17471
- 백준 17779
- 백준 1158
- 1764
- c#
- heap
- 버킷 정렬
- 해시 구현
- 5397
- 백준
- 별 찍기 10
- 풀이
- 백준 5397
- Stack 이란
- ㅣ풀이
- C/C++ 구현
- 백준 17822
- 원판 돌리기
- 시간 복잡도
- 구현
- 백준 1406
- AVL 시간 복잡도
- 게리멘더링2
- 스택의 특징
- 해시구현
- 자료구조
- 백준 2447
- qorwns
- Today
- Total
목록알고리즘 문제풀이/프로그래머스 (17)
홍시홍의 프로그래밍
분류 : 정렬 요구사항 index (x,y)의 사이에 있는 수 중 k번째 수 구하기 풀이 (x,y)번째 중 k번째 수는 오름 차순 정렬 한 후, 원래 인덱스에서의 위치가 (x,y) 사이라면 cnt를 증가 시킨다. cnt가 k일경우, 정답 출력 #include #include #include #include using namespace std; struct go { int num; int index; }; bool com(go a, go b) { if (a.num < b.num) return true; return false; } vector solution(vector array, vector commands) { vector answer; vector myarray; for (int i = 0; i <..
분류 : dfs/bfs 요구사항 최저의 이동으로 str을 target으로 변환시키기 풀이 최저 이동으로 target으로 변환시켜야 된다 조건은 now->next로 이동할때 단어가 1개 달라야지 이동할 수 있다는 것이다. 이 조건만 처리해주면 일반적인 dfs로 풀이하면 된다 #include #include #include #include using namespace std; vector v; string m; int ans = 987654321; int visit[100]; int check(string a, string b) { int j = 0; int i = 0; int cnt = 0; while (a[i]) { if (a[i++] != b[j++]) { cnt++; } if (cnt == 2) { ..
분류 : dfs/bfs 요구사항 연결된 네트워크 사이클 구하기 풀이 dfs로 풀이하면 직관적으로 풀 수 있으나, bfs로 풀어보고 싶어 bfs로 풀어보았다 1. i->j로 연결되있고, 방문한 적이 없으면 bfs를 시작한다. 2. i에 연결되어 있는 노드를 큐에 넣고, visit[node]=1로 설정한다. 3. 큐가 빌때까지 1~2반복한다 #include #include #include #include #include using namespace std; struct go { int x; int y; }; int solution(int n, vector computers) { int answer = 0; int visit[220] = { 0, }; int qvisit[220][220] = { 0, }; f..
분류 : bfs/dfs 요구사항 주어진 숫자들과 +, - 연산을 이용하여 target 숫자 만들기 풀이 bfs로 풀어보았다. position과 sum을 index로 가지는 큐를 만들어서 현재 position의 값을 +, - 해준뒤 position을 하나 증가시켜 큐에 넣어서 풀었다 #include #include #include #include using namespace std; struct go { int pos; int sum; }; int solution(vector numbers, int target) { int answer = 0; queue q; int lastpos = numbers.size(); q.push({ 0,0 }); while (!q.empty()) { int nowpos = q..