[LeetCode] Pass the Pillow

아르당·6일 전

LeetCode

목록 보기
548/561
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

1부터 n까지 번호가 매겨진 n명의 사람이 줄을 서 있다. 처음에 줄의 맨 앞에 있는 사람이 베개를 들고 있다. 매초마다 베개를 들고 있는 사람은 줄에 서 있는 다음 사람에게 베개를 전달한다. 베개가 줄의 끝에 도달하면 전달 방향이 바뀌며, 사람들은 반대 방향으로 베개를 계속 전달한다.

  • 예를 들어, 베개가 n번째 사람에게 전달되면 그 사람은 n - 1번째 사람에게 넘기고, 그 다음에는 n - 2번째 사람에게 넘기는 식으로 계속 이어진다.

두 양의 정수 n과 time이 주어지고, time초 이후 베개를 가지고 있는 사람의 인덱스를 반환해라.

Example

#1
Input: n = 4, time = 5
Output: 2
Explanation: 사람들은 베개를 1 -> 2 -> 3 -> 4 -> 3 -> 2 순서로 전달한다.
5초 이후, 두 번째 사람이 베개를 갖고 있다.

#2
Input: n = 3, time = 2
Output: 3
Explanation: 사람들은 베개를 1 -> 2 -> 3 순서로 전달한다.
2초 이후, 세 번째 사람이 베개를 갖고 있다.

Constraints

  • 2 <= n <= 1000
  • 1 <= time <= 1000

Solved

class Solution {
    public int passThePillow(int n, int time) {
        int completed = time / (n - 1);
        int remaining = time % (n - 1);
        int result = 0;

        if(completed % 2 != 0){
            result = n - remaining;
        }else{
            result = remaining + 1;
        }

        return result;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글