[프로그래머스] Lv.0 공 던지기.java

김엄지·2024년 4월 25일

알고리즘

목록 보기
61/90

🐤 목표

앞으로 매일 꾸준히 코딩테스트를 진행하면서 단계를 높여가보자.

문제 설명

머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 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 answer = 0;
        int index = 0; 
        
        for(int i = 1; i < k; i++) {
            index += 2;
        }
        
        index %= numbers.length;
        answer = numbers[index];
        
        return answer;
    }
}
  1. numbers 값을 가져올 때 사용할 index를 초기화해준다.
  2. k번째 공을 던진 사람을 구하기 위한 반복문. 건너뛰기 위해 index 값에 2를 더해준다.
  3. index값이 배열의 길이보다 커질 수 있기 때문에 나눠준다. (배열 범위 벗저나지 않도록해서 에러 방지)
  • index를 배열 길이로 나머지 연산을 수행하여 배열의 범위 안으로 index를 조정한다.
  • index를 numbers.length로 나눈 나머지를 index에 할당한다.
  1. 결과 변수 answer에 해당 인텍스를 할당해준다.

참고
https://nyoung-blog.tistory.com/entry/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EA%B3%B5-%EB%8D%98%EC%A7%80%EA%B8%B0-Java#google_vignette

profile
나만의 무언가를 가진 프로그래머가 되자

0개의 댓글