[BOJ 1592번] 영식이와 친구들(Python)

2024. 1. 13. 16:48· 코딩 테스트 준비/5정한
목차
  1. 📝 문제
  2. ✅ 풀이

📝 문제

💡 문제 : 영식이와 친구들이 원형으로 모여서 시계방향으로 1부터 N까지 적혀있는 자리에 앉는다.
영식이와 친구들은 공 던지는 게임을 하기로 했다.

게임의 규칙은 다음과 같다.
일단 1번 자리에 앉은 사람이 공을 받는다.
그리고 나서 공을 다른 사람에게 던진다.
다시 공을 받은 사람은 다시 공을 던지고, 이를 계속 반복한다.
한 사람이 공을 M번 받았으면 게임은 끝난다. (지금 받은 공도 포함하여 센다.)
공을 M번보다 적게 받은 사람이 공을 던질 때,
현재 공을 받은 횟수가 홀수번이면 자기의 현재 위치에서 시계 방향으로 L번째 있는 사람에게,
짝수번이면 자기의 현재 위치에서 반시계 방향으로 L번째 있는 사람에게 공을 던진다.
공을 총 몇 번 던지는지 구하는 프로그램을 작성하시오.
⚙️ 입력 : 첫째 줄에 N, M, L이 입력으로 들어온다.
N은 3보다 크거나 같고, 50보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다.
L은 N-1보다 작거나 같은 자연수이다.
⚙️ 출력 : 첫째 줄에 공을 몇 번 던지는지 횟수를 출력한다.

 

문제링크

 

1592번: 영식이와 친구들

예제 1의 경우 일단 1번이 공을 잡는다. 1번은 공을 한 번 잡았기 때문에, 공을 3번에게 던진다. 3번은 공을 한 번 잡았기 때문에, 공을 5번에게 던진다. 5번은 2번에게 던지고, 2번은 4번에게 던진다

www.acmicpc.net


✅ 풀이

n, m, l = map(int, input().split())
people = [0 for i in range(n)]

people[0] += 1
no = 1
count = 0

while True:
    if people[no-1] == m:
        break

    count += 1
    if people[no-1] % 2 == 1:
        no += l
        if no > n:
            no -= n
        people[no-1] += 1

    else:
        no -= l
        if no < 1:
            no += n
        people[no-1] += 1

print(count)
💡 한 사람이 공을 m번 받았을 경우 종료하고, 그렇지 않으면 계속 반복한다.
만약 홀수번의 사람이 공을 받았다면 시계방향으로 공을 돌리고,
원으로 사람들이 서있기 때문에 끝번호의 사람을 넘어가면 처음 사람으로 돌아가도록 했다.
짝수번의 사람이 공을 받은 경우는 반시계방향으로 동일 과정을 진행했다.
저작자표시 비영리 변경금지 (새창열림)
  1. 📝 문제
  2. ✅ 풀이
'코딩 테스트 준비/5정한' 카테고리의 다른 글
  • [BOJ 1668번] 트로피 진열(Python)
  • [BOJ 1032번] 명령 프롬포트(Python)
  • [BOJ 1568번] 새(Python)
  • [BOJ 1550번] 16진수(Python)
zzzini
zzzini
종착지는 어디인지 모르지만
zzzini
나의 표류일지
zzzini
전체
오늘
어제
  • 분류 전체보기 (308)
    • ASAC 빅데이터 분석가 4기 (44)
      • Python기초 (6)
      • SQL (3)
      • Matplotlib & Seaborn (2)
      • Data Handling (6)
      • Web Crawling (3)
      • Machine Learning (9)
      • Deep Learning (10)
      • 데이터 분석 (1)
      • 기타 (2)
      • 수학 (2)
    • 코딩 테스트 준비 (168)
      • 5정한 (132)
      • 카카오 (14)
      • PCCP & PCCE (3)
      • 프로그래머스 (19)
    • 자격증 (35)
      • AWS CLF-C02 (18)
      • AWS SAA-C03 (1)
      • Tableau Desktop Specialist (5)
      • Tableau Certified Data Anal.. (11)
    • 독서 (17)
    • Tech (24)
      • Tableau (11)
      • AI (4)
      • Flask (1)
      • Node.js (2)
      • Cloud Computing (2)
      • Git & GitHub (1)
      • Notion API (1)
      • Linux (2)
    • Projects (2)
    • 알고리즘 공부 (6)
    • 🎵 (11)

블로그 메뉴

  • 글 쓰기
  • 홈
  • 방명록

공지사항

hELLO · Designed By 정상우.v4.2.1
zzzini
[BOJ 1592번] 영식이와 친구들(Python)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.