목록Algorithm/dfs (14)
Mini

https://school.programmers.co.kr/learn/courses/30/lessons/150365 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. dfs중복방문 방법 그냥 visit처리안하고 depth==k일때 리턴하면 된다. 2. dfs 시간복잡도 계산방법 dfs(0) :dfs(상) dfs(하) 좌 우 dfs1번당 자식4개 생김 깊이:k ex)k==2일때, 자식==16(4^2) 복잡도 : 4*4*4*4*4(깊이만큼) == 4^k승 3. dfs 가지치기 방법 1. 사전순으로 dy,dx정함 -> 첫답이 최적해임 -> 첫답을 찾았으면 f..
https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net 1. 순열시간초과 나는경우 해결 15! == 시간초과 해결 -> 포함,불포함 완탐 (2^15 == 32768) 2. 전체코드 #include using namespace std; int l, c, visited[16]; vector v; int mo[128]; //현재까지 k번인덱스까지 포함,미포함 판단함 / 모음갯수/ tempStr void dfs(int k, int cnt, string s) { i..
https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. dfs 조건있는경우 해결방법 check함수를 만들고 if(check) continue 하면된다! 2. 삽질과정 단어길이가 3고정인줄알고 check-> if(count==2) return 1 ; 하드코딩했다가 맞왜틀? 하였다... 3. 전체코드 #include using namespace std; int visited[54]; int n,answer, is_possible,word_size; ..
https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. int dfs 자식수세기 지역변수로 ret=1 ret+=dfs(next) return ret 하면된다. int dfs(int node){ visited[node]=1; int ret=1; for(int next=0;next
https://school.programmers.co.kr/learn/courses/30/lessons/43162 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 의사코드 for(nodes) if(visit) continue; dfs(node) answer++ DFS: 방문처리 for(연결된노드들) if(방문) continue if(연결되었음) dfs(there) 2. 전체코드 #include using namespace std; int answer; int v[204]; int N; //해당 노드(컴퓨터)dfs void dfs(int& n, vect..
https://school.programmers.co.kr/learn/courses/30/lessons/43165?language=cpp 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 의사코드 최악 : 2^20 == 1048576 < 1억 이므로 완탐가능하다. 모든넘버에대해 -, + 경우를 가정하고 dfs로 완탐한다. 2. 전체코드 #include #include using namespace std; int answer; void dfs(vector& numbers, int& target, int idx, int result){ if(idx==num..