본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [공 던지기] 자바 Lv.0

by tripleup 2023. 5. 31.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 공 던지기

https://school.programmers.co.kr/learn/courses/30/lessons/120843


해결 과정

 

먼저 답의 패턴을 찾아보도록 하겠다.

[1,2,3,4,5] 라는 배열이 있을 때  k 를 5라고 해 보겠다.

원모양으로 서있으므로 1,2,3,4,5,1,2,3,4,5라고 패턴을 찾기위해 알아보겠다.

 

그러면 1 -> 3 - > 5 -> 2 -> 4 순서대로 공을 던지게 되며 answer = 4가 된다.

첫번째는 numbers[0] 

두번째는 numbers[2]

세번째는 numbers[4]

네번째는 numbers[6] == numbers[1]

다섯번째는 numbers[8] == numbers[3] 

 

만약 배열의 크기를 넘어간다면 위와 같이  각 인덱스는 numbers.length (여기서는 5)로 나눈 나머지가 된다.

 

알아낸 패턴을 기반으로

 

총 공을 던지는 숫자인 k는 하나씩 줄여주며 k>0 일때까지 진행하는 반복문을 만들어

i는 2씩 더해주며 반복하여 numbers[i%numbers.length] 의 값을 찾아 answer에 넣어주며 된다.

 

소스 코드

 

class Solution {
    public int solution(int[] numbers, int k) {
        int answer = 0;
        
        int i = 0;
        while (k > 0) {
            answer = numbers[i%numbers.length];
            i += 2;
            k--;
        }
        return answer;
    }
}

 


728x90
반응형

댓글