[HackerRank] Save the Prisoner!

아르당·2023년 11월 10일
0

HackerRank

목록 보기
15/109
post-thumbnail

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

문제

한 교도소에 수 많은 죄수와 그들에게 줄 간식이 있다. 교도관들은 간식을 원형 테이블에 번호를 매겨진 의자에 죄수들을 앉혀 공정하게 나눠주기로 결정했다. 의자 번호는 모자에서 뽑는다. 해당 번호의 의자에 앉아있는 죄수부터 순차적으로 나눠준다.
하지만 교도관은 장난을 치고 있다. 마지막 사탕은 다른 것들과 같아 보이지만, 맛이 좋지 않다. 맛 없는 사탕을 받게 될 의자 번호를 구해라.

Example

n = 4
m = 6
s = 2

4명의 죄수와 6개의 사탕이 있고, 2번 의자부터 사탕을 배분한다. 죄수들은 1번부터 4번까지 의자에 앉아있다. 죄수들은 2, 3, 4, 1, 2, 3 순으로 사탕을 받는다. 맛 없는 사탕을 받을 의자는 3번이다.

Function Description

saveThePrisoner 함수를 완성해라. 맛 없는 사탕을 받게 될 의자 번호는 정수이다.
saveThePrisoner 함수는 아래와 같은 매개변수를 가지고 있다.

  • int n: 죄수의 수
  • int m: 사탕의 수
  • int s: 사탕을 나눠줄때 시작하는 의자 번호

Return

  • int: 맛 없는 사탕을 받게 될 의자 번호

Constraints

  • 1 <= n <= 10^9
  • 1 <= m <= 10^9
  • 1 <= s <= n

전체 코드

public static int saveThePrisoner(int n, int m, int s) {
	return (s - 1 + m - 1) % n + 1;
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글