https://school.programmers.co.kr/learn/courses/30/lessons/120843
공의 이동거리를 먼저 계산 후 numbers의 크기로 나눠서 나머지를 구한다. 딱 떨어지면 마지막사람이다.
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> numbers, int k) {
if(k == 1)
return 1;
else
{
if((k*2 - 1) % numbers.size() != 0)
return (k*2 - 1) % numbers.size();
else
return numbers.size();
}
}
#include <vector>
using namespace std;
int solution(vector<int> numbers, int k) {
int answer = 0, size = numbers.size();
while(--k) answer = (answer + 2) % size;
return numbers[answer];
}
k가 0이 될 때 까지 +2 해가면서 size의 나머지로 계산해준다.