본문 바로가기
Algorithm/DFS&BFS&백트래킹&재귀

[백준] 15651번 N과 M(3)

by HANNI하니 2023. 1. 18.

사용 언어 - Python3

15651번: N과 M(3) (실버3, DFS 백트래킹 문제)

문제 LG CNS 21년 상반기 코테랑 유사

 

15651번: N과 M (3)

한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해

www.acmicpc.net

 

정답

DFS 백트래킹 재귀함수 조합 문제 !! 15649,15450,15651,15652번은 세트로 공부

  • 아래 백트래킹 문제 링크를 첨부합니다.

중복도 허용하는 모든 가능한 수열을 뽑는 문제이다.

15651번에서 중복이 가능하게만 해주면 된다. if i not in ans: 제거

# 정답
N, M = map(int,input().split())
ans = []

def back():
	if len(ans) == M:
    	print(" ".join(map(str,ans)))
        return
    for i in range(i,N+1):
    	ans.append()
        back()
        ans.pop()
        
back()

 


레퍼런스

  • 백준 백트래킹 15649,15450,15651,15652번은 세트로 공부해야한다.

백트래킹 문제 비교

  • 15649번 중복X 수열
  • 15650번 중복X 시작포인트 지정 수열
  • 15651번 중복O 수열
  • 15652번 중복O 시작포인트 지정 수열

 

  • 15649번 [1 2] [1 3] [1 4] [2 1] [2 3] [2 4] [3 1] [3 2] [3 4] [4 1] [4 2] [4 3]
  • 15650번 [1 2] [1 3] [1 4] [2 3] [2 4] [3 4]
  • 15651번 [1 1] [1 2] [1 3] [1 4] [2 1] [2 2] [2 3] [2 4] [3 1] [3 2] [3 3] [3 4] [4 1] [4 2] [4 3] [4 4]
  • 16652번 [1 1] [1 2] [1 3] [1 4] [2 2] [2 3] [2 4] [3 3] [3 4] [4 4]
 

백트래킹 단계

조금 더 복잡한 백트래킹 문제 1

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

 

'Algorithm > DFS&BFS&백트래킹&재귀' 카테고리의 다른 글

[백준] 2339번 석판 자르기  (0) 2023.01.18
[백준] 15652번 N과 M(4)  (0) 2023.01.18
[백준] 15650번 N과 M(2)  (0) 2023.01.18
[백준] 2667번 단지번호붙이기  (0) 2023.01.17
[백준] 15649번 N과 M(1)  (0) 2023.01.17

댓글