>백엔드 개발 >PHP 튜토리얼 >베개를 넘겨라

베개를 넘겨라

WBOY
WBOY원래의
2024-07-16 22:22:011086검색

Pass the Pillow

2582. 베개를 넘겨주세요

쉬움

1부터 n까지 n명이 한 줄로 서 있습니다. 줄의 첫 번째 사람이 처음에는 베개를 들고 있습니다. 매 순간마다 베개를 들고 있는 사람이 줄에 서 있는 다음 사람에게 베개를 건네줍니다. 베개가 줄 끝에 도달하면 방향이 바뀌고, 사람들은 계속해서 반대 방향으로 베개를 지나갑니다.

  • 예를 들어, 베개가 n번째 사람에게 도달하면 n번째 - 1번째 사람에게 전달되고, 그런 다음 n - 2번째 사람에게 전달됩니다.

두 개의 양의 정수 n과 time이 주어지면, 시간 초 후에 베개를 들고 있는 사람의 인덱스를 반환합니다.

예 1:

  • 입력: n = 4, 시간 = 5
  • 출력: 2
  • 설명: 사람들은 다음과 같은 방식으로 베개를 전달합니다. 1 -> 2 -> 3 -> 4 -> 3 -> 2.

5초 후 두 번째 사람이 베개를 들고 있습니다.

예 2:

  • 입력: n = 3, 시간 = 2
  • 출력: 3
  • 설명: 사람들은 다음과 같은 방식으로 베개를 전달합니다. 1 -> 2 -> 3.

2초 후 세 번째 사람이 베개를 들고 있습니다.

예 3:

  • 입력: n = 8, 시간 = 9
  • 출력: 6

제약조건:

  • 2
  • 1

해결책:

class Solution {

    /**
     * @param Integer $n
     * @param Integer $time
     * @return Integer
     */
    function passThePillow($n, $time) {
        $direction = 1;  // 1 for forward, -1 for backward
        $current = 0;    // Starting at the first person

        for ($i = 0; $i < $time; $i++) {
            $current += $direction;

            if ($current == $n - 1) {
                $direction = -1;  // Change direction to backward when reaching the last person
            } elseif ($current == 0) {
                $direction = 1;   // Change direction to forward when reaching the first person
            }
        }

        return $current + 1; // Convert to 1-based index
    }
}
  • 링크드인
  • 깃허브

위 내용은 베개를 넘겨라의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:장인 서브 노 루멘다음 기사:장인 서브 노 루멘