본문 바로가기

backtracking9

[백준] 15651번: N과 M (3) 💡문제 분석 요약“1부터 N까지 자연수 중에서 M개를 고른 수열” 조건을 만족하는 길이가 M인 수열을 모두 구하는 문제이다. 같은 수를 여러 번 골라도 된다.시간 제한: 1초메모리 제한: 512MB 💡알고리즘 설계N, M을 입력받는다.수열을 저장할 `sequence` 배열을 생성한다.백트래킹을 사용해 길이가 M인 모든 가능한 수열을 생성한다.현재 깊이(`depth`)가 M과 같아지면 수열을 출력한다.1부터 N까지의 수에 대해:현재 수를 수열에 추가한다.`depth + 1` 깊이로 재귀 호출한다. 💡코드import java.io.*;public class Main { static int n, m; static int[] sequence; static StringBuilder sb = .. 2024. 7. 23.
[백준] 16883번: N과 M (9) 💡문제 분석 요약자연수 N, M을 입력받아, “N개의 자연수 중에서 M개를 고른 수열”을 만족하는 길이가 M인 수열을 모두 출력하는 문제이다.시간 제한: 1초메모리 제한: 512MB 💡알고리즘 설계입력받은 N개의 수를 정렬한다.백트래킹을 사용해 길이가 M인 모든 가능한 수열을 생성한다.각 단계에서 사용하지 않은 숫자를 선택한다.선택한 숫자를 수열에 추가하고, 다음 단계로 넘어간다.수열의 길이가 m이 되면 결과에 추가한다.생성된 수열들을 LinkedHashSet에 저장해 중복을 제거하고 오름차순을 유지한다.사용한 주요 변수:numbers[]: 입력받은 N개의 수를 저장하고 정렬하는 배열sequence[]: 현재 만들고 있는 수열을 저장하는 배열visited[]: 각 숫자의 방문 여부를 저장하는 배열.L.. 2024. 7. 22.
반응형