원형 좌석 배치 문제 해결

PythonBeginner
지금 연습하기

소개

이 프로젝트에서는 Python 을 사용하여 게임과 유사한 이벤트 관리 시스템을 구현하는 방법을 배우게 됩니다. 목표는 주어진 카운팅 규칙에 따라 원형 좌석 배치에서 마지막 공연자의 번호를 결정하는 것입니다.

👀 미리보기

$ python party.py
Please enter the numerical value of the reporting period x:10
The number of the last performer is: 108
$ python party.py
Please enter the numerical value of the reporting period x:18
The number of the last performer is: 254

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다.

  • Python 파일을 생성하고 관리하는 방법
  • 카운팅 프로세스를 시뮬레이션하는 함수를 구현하는 방법
  • 주어진 요구 사항에 따라 마지막 공연자의 번호를 결정하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다.

  • 원형 좌석 배치 및 카운팅 프로세스의 논리를 이해합니다.
  • 문제를 해결하기 위한 Python 함수를 구현합니다.
  • 프로그램을 실행하고 원하는 출력을 얻습니다.
  • 문제 해결 능력을 실제 시나리오에 적용합니다.

party.py 파일 생성

이 단계에서는 /home/labex/project 디렉토리에 party.py 파일을 생성합니다. 이 단계를 완료하려면 아래 단계를 따르세요.

  1. 선호하는 텍스트 편집기 또는 IDE 를 엽니다.
  2. /home/labex/project 디렉토리에 party.py라는 새 파일을 생성합니다.
cd /home/labex/project
touch party.py
  1. 다음 코드를 party.py 파일에 추가합니다.
## n 은 전체 인원 수를 나타내고, x 는 공연 번호를 나타냅니다.
def game(n, x):
    '''
    코드를 완성하세요
    '''

if __name__ == '__main__':
    x = int(input('Please enter the numerical value of the reporting period x:'))
    game(263, x)

이 코드는 game() 함수와 메인 실행 블록을 포함하여 party.py 파일의 기본 구조를 설정합니다.

✨ 솔루션 확인 및 연습

game() 함수 구현

이 단계에서는 마지막 공연자의 번호를 결정하기 위해 game() 함수를 구현합니다. 이 단계를 완료하려면 아래 단계를 따르세요.

  1. 코드 편집기에서 party.py 파일을 엽니다.

  2. game() 함수 내에서 모든 사람의 좌석 번호를 나타내기 위해 seats 리스트를 초기화합니다. seats 리스트는 1 부터 263 까지의 숫자를 포함해야 합니다.

  3. 카운팅의 현재 위치를 추적하기 위해 index 변수를 초기화합니다.

  4. 한 사람만 남을 때까지 카운팅 프로세스를 시뮬레이션합니다. 이를 위해 다음 단계를 반복하는 루프를 사용합니다.

    • 현재 indexx - 1을 더하고 seats 리스트의 길이로 나눈 나머지를 구하여 다음 카운팅 위치를 계산합니다.
    • 계산된 index에서 seats 리스트의 사람을 제거합니다.
  5. seats 리스트에 남아있는 사람이 마지막 공연자입니다. 마지막 공연자의 번호를 출력합니다.

다음은 완성된 game() 함수입니다.

def game(n, x):
    ## 모든 사람의 좌석 번호를 나타내는 좌석 리스트를 초기화합니다.
    seats = list(range(1, n + 1))
    ## 카운팅의 현재 위치를 나타내는 카운팅을 위한 인덱스를 초기화합니다.
    index = 0

    ## 한 사람만 남을 때까지 카운팅을 시뮬레이션합니다.
    while len(seats) > 1:
        ## 다음 카운팅 위치를 계산합니다.
        index = (index + x - 1) % len(seats)
        ## 카운트된 사람을 제거합니다.
        seats.pop(index)

    ## 남은 사람이 마지막 공연자입니다.
    last_performer = seats[0]
    print("The number of the last performer is:", last_performer)
✨ 솔루션 확인 및 연습

프로그램 실행

이 단계에서는 party.py 프로그램을 실행하고 마지막 공연자의 번호를 확인하기 위해 x의 값을 제공합니다.

  1. 터미널 또는 명령 프롬프트를 엽니다.
  2. /home/labex/project 디렉토리로 이동합니다.
  3. 다음 명령을 사용하여 party.py 프로그램을 실행합니다.
python party.py
  1. 메시지가 표시되면 보고 기간 x의 숫자 값을 입력합니다. 예를 들어, x = 10 또는 x = 18을 시도해 볼 수 있습니다.
  2. 프로그램은 마지막 공연자의 번호를 출력합니다.

다음은 프로그램 출력의 예입니다.

$ python party.py
Please enter the numerical value of the reporting period x:10
The number of the last performer is: 108
$ python party.py
Please enter the numerical value of the reporting period x:18
The number of the last performer is: 254

축하합니다! game() 함수를 구현하고 party.py 프로그램을 실행하여 프로젝트를 완료했습니다.

✨ 솔루션 확인 및 연습

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.