C++105 [C++] 백준 15652번 : N과 M (4) https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 N과 M(2) 번과 (3) 번을 섞은 듯한 문제이다. 재귀 호출을 할 때 이전 기준값을 시작점으로 삼으면 이전 배열 값보다 크거나 같은 값을 출력할 수 있다. 느낀 점 실은 이번 코드도 (2)번에서 한 것처럼 조건문으로 경우를 따져서 값을 대입하는 방식으로 했었다. 채점 이후 더 나은 방법이 없을까 고민하다가 (2) 번 문제처럼 시작점을 따지는 방법으로 넘어갔다. 코드 길이가 확연히 .. 2021. 5. 24. [C++] 백준 15650번 : N과 M (3) https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 N과 M (1)에서 visited 배열을 이용해서 중복된 숫자가 나오는 것을 방지했다. 그것만 제외해주면 동일한 문제 느낀점 이번 문제는 '중복 순열'을 푸는 방법이었다. 사실 1번 2번 문제에서 순열, 조합을 따지지는 않았지만 이번 문제를 풀 때 순열과 조합이 관련된 문제라는 것을 알고 사전에 훑어보고 들어갔다. 코드 #include #define MAX 8 using namespa.. 2021. 5. 23. [C++] 백준 15649번 : N과 M (1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제 풀이 1. 1부터 N까지 자연수 중 중복 없이 M개 고른 수열을 구현하기 위해 visited 배열을 이용해 중복의 여부를 체크한다. 2. dfs함수를 이용해서 모든 경우를 확인한다. DFS (Depth-First Search) : 깊이 우선 탐색 Root 노드에서 다음 branch로 넘어가기 전에 해당 분기를 완벽하게 탐사하는 방법 - 모든 노드를 확인할 때 유용 어떤 노드를 방문했는지 체.. 2021. 5. 22. 이전 1 ··· 15 16 17 18 다음