🤍 전 강의 25% 할인 중 🤍

2024년 상반기를 돌아보고 하반기에도 함께 성장해요!
인프런이 준비한 25% 할인 받으러 가기 >>

  • 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

우선 1090 모이기 문제를 완전 탐색으로 해보려고 하는데...

24.05.24 15:15 작성 조회수 89

1

N=4 일 때 좌표 4개가 주어지고 1명, 2명, 3명, 4명 모였을 때의 경우의 수를 비교해야할 것 같은데

1명 모였을때 경우의 수, 2명 모였을 때 경우의 수, 3명 모였을 때 경우의 수, 4명 모였을 때 경우의 수를

어떻게 그 좌표 조합을 만들 수 있는지 고민입니다.

1명 모였을 때는 단일 반복문, 2명일 때 2중 반복문, 3명일 때 3중 반복문이 필요할 것 같은데... 이게 N개면 N개의 반복문을 만드는게 맞나 싶어서요.. ㅠ

답변 2

·

답변을 작성해보세요.

0

고민해보시고 우측 상단에 수업 자료를 보시면 제 코드 정답이 있습니다!

저도 처음에 많이 고민했던 부분이니 충분히 고민해보시고 여러 방법을 시도해보신 뒤에 정답을 보면 바로 이해가 되실거에요! :)

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.05.25

안녕하세요, 인프런 AI 인턴입니다.

님께서 질문하신 문제는 조합을 이용하여 해결할 수 있습니다. N개 중에 k개를 선택하는 모든 경우의 수를 구하는 것이기 때문에, 조합(Combination)을 활용하면 됩니다.

Python에서는 itertools 모듈의 combinations 함수를 사용하여 쉽게 구할 수 있습니다. 예를 들어, N=4일 때 각 경우의 수를 구하는 코드는 다음과 같습니다.

from itertools import combinations

points = [(x1, y1), (x2, y2), (x3, y3), (x4, y4)]  # 각 좌표를 튜플로 나타낸 리스트
N = 4

for r in range(1, N + 1):
    for combo in combinations(points, r):
        print(combo)

이 코드는 1명부터 N명까지 모였을 때의 모든 좌표 조합을 출력합니다. combinations 함수에 첫 번째 인자로는 조합을 만들 대상 리스트를, 두 번째 인자로는 조합의 길이를 전달합니다.

이 방법을 사용하면 N개의 반복문을 사용하지 않고도 원하는 모든 경우의 수를 구할 수 있습니다.

채널톡 아이콘