[HackerRank/C++] Save the Prisoner!
2023. 2. 6. 08:09ㆍ코딩테스트 해커랭크/Algorithms -Easy
죄수들의 원형 탁자에 앉아있어 순서는 마지막에서 다시 1로 순환한다
죄수에게 사탕을 순서대로 줄때, n명의 죄수가 탁자에 둘러앉아 있으며 m개의 사탕을 가지고 있고,
s번째 죄수부터 사탕을 주기 시작할때 마지막으로 사탕을 받는 죄수는 몇번째 죄수인지 return 한다
int saveThePrisoner(int n, int m, int s)
{
int result = (m + s - 1) % n;
if (!result)
result = n;
return result;
}
구해야 할 것은 마지막 사탕을 받는 죄수이므로 첫번째로 몇번째 죄수가 받았는지는 중요하지 않다
따라서 m + s를 더하고, 마지막이므로 -1을 한 죄수가 마지막으로 사탕을 받는 죄수일 것이다
이 값을 죄수 수인 n으로 나눠 나머지 값을 찾는다
만약 나머지가 0이면 n번째 죄수가 마지막으로 사탕을 받은 것이므로 예외처리를 해 result값을 n으로 바꾸고 result를 return 한다
'코딩테스트 해커랭크 > Algorithms -Easy' 카테고리의 다른 글
| [HackerRank/C++] Sequence Equation (0) | 2023.02.06 |
|---|---|
| [HackerRank/C++] Circular Array Rotation (0) | 2023.02.06 |
| [HackerRank/C++] Viral Advertising (0) | 2023.02.06 |
| [HackerRank/C++] Beautiful Days at the Movies (0) | 2023.02.06 |
| [HackerRank/C++] Angry Professor (0) | 2023.02.06 |