목록프로그래머스/bfs, dfs (3)
Study hard

programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr [풀이] dfs로 words배열에서 현재 단어와 한글자만 다른 단어를 찾아 현재 단어가 target단어가 될 때까지 탐색하는 방법으로 풀었다. 단계가 현재까지 구한 최솟값보다 커질 경우 가지치기 하여 시간을 단축하였다. #include #include #include using namespace std; vectorWords; int..

programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있�� programmers.co.kr [풀이] bfs탐색으로 풀었다. 예제를 보면 컴퓨터 1대만 있어도 네트워크로 치는 것을 알 수 있다. 그래서 N번 for문을 돌리며 아직 네트워크임을 체크하지 않은 컴퓨터가 있으면 bfs로 이어진 네트워크 모두를 체크하고, 네트워크의 개수는 bfs가 호출되는 개수로 구하였다. #include #include #include using namespace std; int..

programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr [풀이] dfs 중복 순열을 구하여 푸는 문제였다. -는 0, +는 1로 표시하여 0과 1로 이루어진 numbers의 크기와 같은 중복 순열을 구하고, 각 경우에 대해 연산 결과와 target값을 비교하였다. 중복 순열: n개의 수 중 r개의 수를 중복을 허용하여 한 줄로 나열하는 경우의 수. 순서가 다르면 다른 경우로 침..