목록Algorithm (427)
Mini

https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* 시도1min heap에 제거대상을 k 개선택vis에 기록앞에서부터 제거대상인지 보고, 제거예제3이 반례였음 * 풀이스택이용top 계속 pop 해주기, k--완료후, stack에 남은숫자가 정답엣지케이스, k가 남은경우는 stack에서 k개를 제거해줘야함.#include using namespace std;priority_queue ,greater> pq;vector v;int vis[10]; //제거대상stack s;string solutio..

https://school.programmers.co.kr/learn/courses/30/lessons/49191 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* 플로이드 학습3중 for문으로모든 정점 쌍의 최단거리를 구함O(n^3) * 풀이명제i가 k를 이기고, k가 j를 이기면i는 j를 이긴다.j는 i에게 진다.승부가 났는지 판단본인제외한 다른사람과 모두 승패를 겨루어 봤는지 확인( 표에 값이 채워져있어야함)#include using namespace std;int graph[104][104];int ret;int solution(int n, vector> results) { for( auto..

https://school.programmers.co.kr/learn/courses/30/lessons/42897 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* dfs dp 풀이시행착오무조건 집을 다 도둑질하는게 이득아닌가?아님, 0원인집 도둑질 -> i+1에 100만원 집을 못텀결국 idx번째 집을 턴다, 안턴다로 완탐필요현재집을 턴다 -> 다음집은 cur+2 // cur+1을 못터는걸 여기서 구현현재집을 안턴다 -> 다음집은 cur+1다음집에서도 재귀적으로 위 2경우 탐색예외처리첫번째 집을터는경우, 마지막 집을 털수없음 예외처리#include using namespace std;int n;int ..

https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr* 풀이완탐 -> 50000Cn -> 불가매개변수 탐색f(x) : 최소거리가 x일때, 제거대상 바위수가 n 이하인가?prev 변수가 킥이다.#include using namespace std;int ret,n; int dist;vector rocks;int go(int x){ int cnt=0; int prev=0; //이전위치 for(auto rock : rocks){ //제거대상 if(abs(prev-..

https://www.acmicpc.net/problem/11909 * 개념최단거리 알고리즘 비교bfs 가중치가 같은 그래프다익스트라가중치가 다른 그래프 * 다익스트라 복습느긋한 삭제중복된 정점(3)이 저장된경우, 건너뛰어버리기for문 위에 코드 한줄 추가#include #include #include #include using namespace std; int V, E, K, u, v, w; vector> adj[20001]; int dist[20001];bool visited[20001];const int INF = 987654321; priority_queue, vector>, greater>> pq; int main(){ scanf("%d %d %d", &V, &E, &K); fill(dist..

https://www.acmicpc.net/problem/2877* 풀이#includeusing namespace std; typedef long long ll;ll k;int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>k; int len=1; int cnt=2; while(k>cnt) { k-=cnt; cnt *=2; len++; } int idx = k; //그룹내 위치 idx--; //0-idx로 // cout자바는 string대신StringBuilder 사용insert ( idx, 문자) 사용import java.util.Scanner;public clas..

https://www.acmicpc.net/problem/2169* 헷갈렷던 부분2차원 dp로 안되는 이유dp, ret 초기화 값 문제국룰로 무조건 -1, 0 이 아님!-1, 0이 정답이 될수있는지 체크 필요!불가능한 값으로 초기화할것

https://www.acmicpc.net/problem/17136* 풀이dfs로 한칸씩 보면된다.요령은없다.구현은 추상화, 분리가 핵심..5개제한 -> 카운팅스타? 맵또는 배열가지치기cnt가 ret보다 크다면, 해당 경로는 유망하지 않으므로 가지치기하면 더 최적화 가능#includeusing namespace std; typedef long long ll;int ret=987654321; //맵크기, 나무수, k년int a[14][14];int n=10;map m; ////좌표에 sz의 색종이를 놓을수 있는지int check(int y, int x, int sz) { //범위쳌 //n인경우는 dfs에서검사함 -> 제외 if(y+sz>n || x+sz>n) return 0; for(int ..