https://school.programmers.co.kr/learn/courses/30/lessons/120843
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
풀이
1명을 건너뛰어 던지는 행위를 반복할 때, K번째로 던지는 사람의 번호를 구하는 문제이다.
실제로 2씩 K번 더하는 방법으로도 문제를 해결할 수 있지만, 한 번에 2 * K를 더하는 것이 더욱 효율적일 것이라고 생각하여 후자의 방법으로 풀어보았다.
또한 1번과 끝번은 붙어있다는 조건이 있기 때문에, 다 더한 후 사람 수로 나눈 나머지를 구한 것이 답이 된다.
코드
class Solution {
public int solution(int[] numbers, int k) {
int answer = 0;
int index = (k - 1) * 2 % numbers.length;
answer = numbers[index];
return answer;
}
}
틀린 부분이 있다면 정정해 주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!
728x90
'[JAVA]프로그래머스 > Lv.0' 카테고리의 다른 글
[JAVA]프로그래머스 - 합성수 찾기 (2) | 2024.02.08 |
---|---|
[JAVA]프로그래머스 - 배열 회전시키기 (2) | 2024.01.31 |
[JAVA]프로그래머스 - 2차원으로 만들기 (2) | 2023.12.27 |
[JAVA]프로그래머스 - 점의 위치 구하기 (2) | 2023.12.20 |
[JAVA]프로그래머스 - 구슬을 나누는 경우의 수 (2) | 2023.11.26 |