문제
https://www.acmicpc.net/problem/15650
15650번: N과 M (2)
한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해
www.acmicpc.net
풀이
1부터 n까지 자연수 중에서 중복없이, 오름차순 형태의 길이가 m인 수열을 모두 출력하는 문제입니다.
https://dev-mandos.tistory.com/169
[BOJ] 백준 15649 N과 M (1) (Swift)
문제 https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야
dev-mandos.tistory.com
위 문제와 거의 동일하지만, 오름차순 형태만 추가가 되었네요.
이 문제도 백트래킹 알고리즘을 사용하여 풀이할 수 있습니다.
선택한 숫자 + 1 부터 n까지 for문을 돌면서, 수를 선택해주면 오름차순 형태로 수열을 구할 수 있습니다.
m개를 고른 경우에는 함수를 return하고 고른 수들을 출력해줍시다.
선택한 숫자 + 1이 n보다 커진다면 함수를 for문을 돌지 않고, 함수를 return 해주도록 구현하였습니다.
소스코드
후기
N과 M (1) 문제와 거의 동일한 문제입니다.
숫자 탐색을 시작하는 부분만 다르게 구해준다면 쉽게 풀 수 있는 문제입니다.
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 4779 칸토어 집합 (Swift) (0) | 2023.03.27 |
---|---|
[BOJ] 백준 13909 창문 닫기 (Swift) (0) | 2023.03.27 |
[BOJ] 백준 15649 N과 M (1) (Swift) (0) | 2023.03.20 |
[BOJ] 백준 1004 어린왕자 (Swift) (0) | 2023.03.18 |
[BOJ] 백준 1002 터렛 (Swift) (0) | 2023.03.17 |