💬 문제 설명
머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
🚫 제한 사항
- 2 < numbers의 길이 < 100
- 0 < k < 1,000
- numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다.
- numbers는 1부터 시작하며 번호는 순서대로 올라갑니다.
📢 입출력 예
👨🏫 입출력 예 설명
📃 제출 코드
class Solution {
public int solution(int[] numbers, int k) {
int order = 0;
for (int i = 0; i < k - 1; i++) {
order += 2;
if (order > numbers.length - 1) {
order = order - numbers.length;
}
}
return numbers[order];
}
}
✏ 해결방법 & 배운점
문제에서 `k번째로 공을 던지는 사람의 번호는 무엇인지를 물어보는 문제로 `k-1`번을 반복하며 공을 던질 위치를 순회하였습니다. `order` 변수를 사용하여 현재 공을 던질 위치를 추적하였습니다. 초기 `order`는 0으로 설정되고, `k-1`번 반복하면서 `order`를 두 칸씩 앞으로 이동시킵니다. 만약 `order`가 배열의 마지막 인덱스를 넘어서면, `order - numbers.length`로 인덱스의 위치를 조절해주었습니다.
'PS > 프로그래머스 입문 100제' 카테고리의 다른 글
[프로그래머스] LV.0 삼각형의 완성조건 (2) - 자바 [79/100] (0) | 2024.07.01 |
---|---|
[프로그래머스] LV.0 구슬을 나누는 경우의 수 - 자바 [78/100] (1) | 2024.07.01 |
[프로그래머스] LV.0 영어가 싫어요 - 자바 [76/100] (0) | 2024.06.28 |
[프로그래머스] LV.0 문자열 계산하기 - 자바 [75/100] (0) | 2024.06.28 |
[프로그래머스] LV.0 잘라서 배열로 저장하기 - 자바 [74/100] (0) | 2024.06.28 |