[코드트리 챌린지] K개 중 하나를 N번 선택하기(Simple) (진행 중)

HKTUOHA·2023년 10월 29일
0

코드트리

목록 보기
13/15
post-thumbnail

⭐실력진단 결과



별다른 조건 없이 K개 중에 하나를 N번 선택하는 재귀함수를 작성하는 방법에 대해 배우게 됩니다.



기본개념


🟢k개 중에 1개를 n번 뽑기

📌문제


📌나의 코드

k, n = map(int, input().split())

answer = []
def print_answer():
    for elem in answer:
        print(elem, end=" ")
    print()

def choose(curr_num):
    if curr_num == n + 1:
        print_answer()
        return

    for i in range(1, k + 1):
        answer.append(i)
        choose(curr_num + 1)
        answer.pop()

    return

choose(1)



연습문제


❌🟢아름다운 수

📌문제


📌나의 코드

🤔


✏️오답노트

  1. 숫자가 연속되는지 여부만 확인하면 되는데, 숫자의 개수까지 하나하나 세어보려고 했다.
  2. 함수를 사용하면 훨씬 간편하다.
  3. 다음 연속 숫자의 시작 위치는 이전 연속 숫자만큼 이동하면 된다.


❓🟠강력한 폭발

📌문제


📌나의 코드



❌🟠겹치지 않게 선분 고르기

📌문제


📌나의 코드

🤔


백트래킹 너무 어렵다...



⭐백트래킹 기본형태

def 정답 가능성():
	if 조건에 안 맞으면:
    	return False
    return True


def 재귀함수(현재 노드):
	if 탐색 끝 or 정답 가능성이 있으면:
    	출력 or 저장
        
    for 모든 자식 노드에 대해:
    	(if 정답 가능성이 있으면):
        자식 노드로 이동      # append()
        재귀함수(자식 노드)   # 재귀함수(현재 노드 + 1)
        부모 노드로 이동      # pop()
profile
공부 기록

0개의 댓글