문제:
머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다.
공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다.
친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때,
k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.

 

문제 풀어보기: https://school.programmers.co.kr/learn/courses/30/lessons/120843

 

풀이보기
더보기
function solution(numbers, k) {
    let count = 1;
    
    let i = 0;
    while(count < k) {
        count++;
        i += 2;
        if(i > numbers.length - 1) {
            i %= numbers.length;
        }
    }
    
    return i + 1;
}

while문을 이용해서 풀어주었다.

먼저 count가 k와 같아질 때까지 반복을 해주고, count는 1부터 시작한다.

그 후 1번이 던졌다고 치고 바로 count++을 해준 뒤, 한 번호를 건너뛰도록 i + 2를 해준다.

만약 i가 numbers의 길이보다 커진다면 i % numbers.length를 해줘서 다시 처음 인덱스로 돌아가도록 한다.

그럼 이제 알아서 k만큼 반복할 것이고 마지막으로 인덱스는 0부터 시작하니까 i + 1 해줘서 리턴해주면 된다.

 

+ Recent posts