dfs
-
[BOJ] #14889 _ 스타트와 링크Problem Solving/BOJ 2019. 8. 12. 23:08
[스타트와 링크] https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net dfs를 이용하는 문제이다. next_permutation을 이용하면 더 쉽게 구현할 수 있지만, {a, a, a, b, b, b}와 {b, b, b, a, a, a}를 중복 계산한다. (단, 중복 계산해도 시간 초과는 발생하지 않기 때문에 사용해도 된다.) 중복 계산하지 않도록 구현하기 위해 아래와 같이 재귀 함수를 이용하여 구현하였다. [ 소스 코드 ] #include #include #inclu..
-
[SWEA] #5215 _ 햄버거 다이어트Problem Solving/SWEA 2019. 8. 4. 10:10
[햄버거 다이어트] https://swexpertacademy.com/main/code/problem/problemDetail.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com dfs를 이용하여 모든 경우의 수를 모두 해보고 가장 높은 점수를 출력하면 된다. [ 소스 코드 ] #include #include using namespace std; int N, L, max_score; int ingredient[21][21] = { 0, }; int solve(int idx, int kcal, int score); int main() { int test_case; scanf("%d", &test_case); f..
-
[BOJ] #13023 _ ABCDEProblem Solving/BOJ 2019. 7. 10. 22:23
[ABCDE] https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net 처음에는 문제를 이해하기 어려웠다. 문제를 해석하면, 그냥 ABCDE가 친구이면 된다 == 5명이상이 친구이면 1, 아니면 0을 출력한다. 좀 더 이해하기 쉽게 예제를 가지고 풀이해보자면, [예제 2번] 다음과 같은 입력은 아래의 그래프와 같이 관계를 표현할 수 있다. 해당 그래프에서 친구를 맺을 수 있는 관계의 수는 4이고, 5명이 친구를 맺을 수 있다. 왜냐하면, 아래의 그래프와 같이 한번에 이어질 수 있는 노드의 갯수가 5개이다. 0 - 3 - 2 - 1 - 4 개인적으로 문제를 이..