[프로그래머스][파이썬] 공 던지기 - 수학 (Level 0)

뻥튀기아이스크림·2025년 3월 16일
1
post-thumbnail

◽ 문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120843

◽ 문제

◽ 입력 & 출력

◽ 내 풀이

def solution(numbers, k):
    answer = 0
    idx = 0
    round_numbers = numbers * k
    
    for i in range(1, k + 1):
        answer = round_numbers[idx]
        idx += 2

    return answer
  • 처음엔 k 번째로 던졌을 때 받는 사람이라고 착각해서 idx = 2 로 초기화, 하지만 문제가 던지는 사람을 물어봤으니 0 으로 초기화 후에 반복을 수행했다.

◽ 다른 사람 풀이

def solution(numbers, k):
    return numbers[2 * (k - 1) % len(numbers)]
  • 공은 1번째부터 시작하여 2씩 전달하는 규칙이니 2 * k 이지만, 던지는 사람이므로 2 * (k - 1) 로 인덱스를 맞추어야한다.
  • numbers 리스트가 순환하는 구조로 설계해야하니 % 를 통해 리스트의 크기를 넘지 않도록 자동으로 순환되게 만들었다.

◽ 더 나아가기

  • 배열의 길이 나머지 연산을 통해 리스트의 순환을 고려할 수 있다.



피드백은 언제나 환영입니다 :)

profile
성장하고 싶은 개발자

0개의 댓글