더북(TheBook)

 

3동명이인 찾기 ①

 

◼︎ 3-1 두 명을 뽑아 짝으로 만드는 프로그램

사람이 총 n명일 때 두 명을 뽑아 짝으로 만드는 방법은 동명이인 찾기 문제에서 비교 부분을 출력 문장으로 고치면 쉽게 풀 수 있습니다.

 

◉ 예제 소스 e03-1-pairing.py

# n명에서 두 명을 뽑아 짝으로 만드는 모든 경우를 찾는 알고리즘

# 입력: n명의 이름이 들어 있는 리스트

# 출력: 두 명을 뽑아 만들 수 있는 모든 짝

 

def print_pairs(a):

    n = len(a)                     # 리스트의 자료 개수를 n에 저장

    for i in range(0, n - 1):      # 0부터 n - 2까지 반복

        for j in range(i + 1, n):  # i + 1부터 n - 1까지 반복

            print(a[i], "-", a[j])

 

name = ["Tom", "Jerry", "Mike"]

print_pairs(name)

print()

name2 = ["Tom", "Jerry", "Mike", "John"]

print_pairs(name2)

 

◉ 실행 결과

Tom - Jerry

Tom - Mike

Jerry - Mike

 

Tom - Jerry

Tom - Mike

Tom - John

Jerry - Mike

Jerry - John

Mike - John

 

참고로 n명에서 두 명을 뽑아 짝으로 만들면 짝 조합이 가지 출력됩니다. 이 경우의 수를 nC2라고도 표현합니다.

 

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.