반응형

심심해서 간단한 방식으로 랜덤 팀 생성기를 만들어 보았습니다. 팀의 수(행)와 인원 수(열)를 입력 받은 후 인원 수 만큼 사람의 이름을 입력 받고 랜덤하게 팀을 짜주는 간단한 코드입니다. 파이썬으로 구현해보았습니다.


import random

# 랜덤 팀 생성기
# 행(row) 열(col) 행은 팀의 수, 열은 팀당 인원 수
col, row = map(int, input("몇 팀을 만드시겠습니까? / 몇 명을 한 팀으로 만드시겠습니까?\n공백을 기준으로 입력하여 주세요.ex) 3 4 (4명씩 3팀)\n").split())


# 리스트 컴프리헨션을 사용하여 0으로 초기화
team = [[0] * row for _ in range(col)]

# 인원들의 이름을 공백 기준으로 입력 받음
name = list(input("인원들을 공백을 기준으로 입력하여 주세요.\nex)수피치 어피치 라이언 ...\n").split())

# name(인원들의 이름)수가 col * row(인원들의 수)와 다르다면(크거나 작거나)
# 인원들의 수와 인원들의 이름의 수가 일치할 때 까지 입력 받음
# out을 입력하면 프로그램 종료
while len(name) != col * row :
    name = list(input("인원수가 잘못 되었습니다. 인원들의 이름을 공백을 기준으로 다시 입력해주세요\n취소하고 싶으시다면 out을 입력하여주세요\n").split())
    if(name == ["out"]):
        quit()

# 반복문을 사용하여 랜덤한 인덱스를 뽑아
# 순차적으로 team에 한명씩 넣고 그 인덱스는 삭제하여
# 중복처리되지 않게 함.
for i in range(col) :
    for j in range(row) :
        x = random.randrange(0, len(name))
        team[i][j] = name[x]
        name.pop(x)

# 결과 출력!
for i in range(col) :
    print(str(i+1) + "번팀 " + str(team[i]))

실행 결과

- 인원의 수가 일치할 때

- 인원의 수가 일치하지 않을 때

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기