본문 바로가기

PS/백준

[BOJ] 백준 15650 N과 M (2) (Swift)

반응형

문제

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하고 고른 수들을 출력해줍시다.
선택한 숫자 + 1n보다 커진다면 함수를 for문을 돌지 않고, 함수를 return 해주도록 구현하였습니다.

소스코드

후기

N과 M (1) 문제와 거의 동일한 문제입니다.
숫자 탐색을 시작하는 부분만 다르게 구해준다면 쉽게 풀 수 있는 문제입니다.

반응형