문제
https://school.programmers.co.kr/learn/courses/30/lessons/120843
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
공은 한 번 던질 때마다 한 사람을 건너뛰고 다음 사람에게 전달된다. 따라서 현재 위치에서 2칸씩 이동한다고 생각하면 된다.
처음 공을 가진 사람은 첫 번째 사람이므로, k번째로 공을 받는 사람은 총 k - 1번 이동하게 된다. 따라서 이동해야 하는 칸 수는 (k - 1) * 2가 된다.
배열의 끝에 도달하면 다시 처음으로 돌아와야 하므로 나머지 연산(%)을 이용해 인덱스를 계산한다.
int answer = numbers[2 * (k - 1) % numbers.length];
코드
class Solution {
public int solution(int[] numbers, int k) {
int answer = numbers[2*(k-1)%numbers.length];
return answer;
}
}'PS > Programmers' 카테고리의 다른 글
| [프로그래머스 Lv.0] 구슬을 나누는 경우의 수(Java) (0) | 2026.07.28 |
|---|---|
| [프로그래머스 Lv.0] 이진수 더하기(Java) (0) | 2026.07.27 |
| [프로그래머스 Lv.0] 잘라서 배열로 저장하기(Java) (0) | 2026.07.25 |
| [프로그래머스 Lv.0] 가까운 수(Java) (0) | 2026.07.24 |
| [프로그래머스 Lv.0] 숨어있는 숫자의 덧셈(2)(Java) (0) | 2026.07.23 |
댓글