목록Algorithm (421)
Mini

https://www.acmicpc.net/problem/13023* 백트래킹 복습depth가 5이상인지 검사이때, vis=0으로 백트래킹 필요즉, 원복시키면서 완탐을 하려고 원상복귀를 하는것이다.완탐을하려면 원복이 필요! * 풀이#includeusing namespace std; typedef long long ll;int n,m,ret;int vis[2004];vector adj[2004];int dfs(int cur, int depth) { if(depth==5) { cout>n>>m; for(int i=0;i>a>>b; adj[a].push_back(b); adj[b].push_back(a); //a와 b가 친구 -> 양방향맞음 } for(int ..

https://www.acmicpc.net/problem/2023* 시도1자릿수에따라 for문?단점substr의 비용, 복잡도 sosu 배열은 1000만 넘어가면 메모리초과 * 풀이n=8 -> 작네? -> dfs 완탐?sosu배열? -> 1000만 초과 불가 -> check 함수로 그때그떄 확인#includeusing namespace std; typedef long long ll;int n,k,ret;int check(int num) { if(num>n; // fill(sosu, sosu + 100000000, 1); // 모두 소수라고 가정! // sosu[0]=0; sosu[1]=0; //0, 1은 소수 아님 // for(int i=2;i*i 추가최적화사실뒤에 홀수만 붙일수있음짝수를 ..

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..