문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
1부터 n까지 번호가 매겨진 n명의 사람이 줄을 서 있다. 처음에 줄의 맨 앞에 있는 사람이 베개를 들고 있다. 매초마다 베개를 들고 있는 사람은 줄에 서 있는 다음 사람에게 베개를 전달한다. 베개가 줄의 끝에 도달하면 전달 방향이 바뀌며, 사람들은 반대 방향으로 베개를 계속 전달한다.
두 양의 정수 n과 time이 주어지고, time초 이후 베개를 가지고 있는 사람의 인덱스를 반환해라.
#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초 이후, 세 번째 사람이 베개를 갖고 있다.
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;
}
}