본문 바로가기

반응형

알고리즘

(199)
[프로그래머스]Lv.1 기사단원의 무기 https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니..
[백준 알고리즘 자바] 15649 : N과 M (1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수..
섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 14. 그래프 최단거리(BFS) 문제 다음 그래프에서 1번 정점에서 각 정점으로 가는 최소 이동 간선수를 출력하세요. 입력 첫째 줄에는 정점의 수 N(1
섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 13. 경로탐색(인접리스트, ArrayList) 문제 방향 그래프가 주어지면 1번 정점에서 N번 정점으로 가는 모든 경로의 가지 수를 출력하는 프로그램을 작성하세요. 아래 그래프에서 1번 정점에서 5번 정점으로 가는 가지 수는 1 2 3 4 5 1 2 5 1 3 4 2 5 1 3 4 5 1 4 5 총 6 가지입니다. 입력 첫째 줄에는 정점의 수 N(1
섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 12. 경로탐색(DFS) 문제 방향 그래프가 주어지면 1번 정점에서 N번 정점으로 가는 모든 경로의 가지 수를 출력하는 프로그램을 작성하세요. 아래 그래프에서 1번 정점에서 5번 정점으로 가는 가지 수는 1 2 3 4 5 1 2 5 1 3 4 2 5 1 3 4 5 1 4 5 총 6 가지입니다. 입력 첫째 줄에는 정점의 수 N(1 2) ] 1. graph[1][1] 에는 1이 들어가있다. 이를 통해 DFS(1) 을 호출했을 때, if(graph[v][i] == 1 && ch[i] == 0) 에 걸리게 된다. 2. 그러나 ch[1] 에 1이 들어가있기에 if 문에 충족되지 못하고, 밖으로 나와서 DFS(2)를 호출하게 된다. 3. DFS(2)를 호출하면 grahp[1][2]가 되고, 위에 적힌 두 개의 if 조건을 충족하기에 방문했..
섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 10. Tree 말단노드까지의 까장 짧은 경로(BFS) 문제 아래 그림과 같은 이진트리에서 루트 노드 1에서 말단 노드 까지의 길이 중 가장 짧은 길이를 구하는 프로그램을 작성하세요. 각 경로의 길이는 루트도느에서 말단노드까지 가는데 디동하는 횟수를 즉 간선(에지)의 개수를 길이로 하겠습니다. 입력 생략 출력 3번 노드까지의 길이인 1 입출력 예제 생략 풀이방식 이번 문제는 이진트리, 재귀함수를(을) 사용하여 푸는 문제이다. 더 자세한 설명은 아래 글을 참조해서 확인해보기 바랍니다. 섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 6. 부분집합 구하기(DFS) 설계과정 1. 맨 처음에 발견되는 말단 노드가 가장 짧은 거리에 있는 말단 노드이므로 그대로 출력한다. 2. 말단 노드가 아니라면 자식 노드들을 큐에 넣는다. 3. 레벨을 증..
섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 9. Tree 말단노드까지의 가장 짧은 경로(DFS) 문제 아래 그림과 같은 이진트리에서 루트 노드 1에서 말단 노드 까지의 길이 중 가장 짧은 길이를 구하는 프로그램을 작성하세요. 각 경로의 길이는 루트도느에서 말단노드까지 가는데 디동하는 횟수를 즉 간선(에지)의 개수를 길이로 하겠습니다. 입력 생략 출력 3번 노드까지의 길이인 1 입출력 예제 생략 풀이방식 이번 문제는 이진트리, 재귀함수를(을) 사용하여 푸는 문제이다. 더 자세한 설명은 아래 글을 참조해서 확인해보기 바랍니다. 섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 6. 부분집합 구하기(DFS) 설계과정 1. 해당 노드가 말단 노드임을 확인하고, 말단 노드라면 레벨 값을 바로 리턴한다. 2. 말단 노드가 아니라면 자식 노드들 중에 더 작은 레벨값을 리턴받는다. * 주..
섹션 7. Recursive, Tree, Graph(DFS, BFS 기초) 8. 송아지 찾기1(BFS) 문제 현수는 송아지를 잃어버렸다. 다행히 송아지에는 위치추적기가 달려 있다. 현수의 위치와 송아지의 위치가 수직선상의 좌표 점으로 주어지면 현수는 현재 위치에서 송아지의 위치까지 다음과 같은 방법으로 이동한다. 송아지는 움직이지 않고 제자리에 있다. 현수는 스카이 콩콩을 타고 가는데 한 번의 점프로 앞으로 1, 뒤로 1, 앞으로 5를 이동할 수 있다. 최소 몇 번의 점프로 현수가 송아지의 위치까지 갈 수 있는지 구하는 프로그램을 작성하세요. 입력 첫 번째 줄에 현수의 위치 S와 송아지의 위치 E가 주어진다. 직선의 좌표 점은 1부터 10,000까지이다. 출력 점프의 최소횟수를 구한다. 답은 1이상이며 반드시 존재합니다. 입출력 예제 풀이방식 이번 문제는 이진트리, 큐, 재귀함수를(을) 사용하여 푸는 문제..