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
반응형
'JAVA > Programmers' 카테고리의 다른 글
JAVA 프로그래머스 [팩토리얼] 자바 Lv.0 (0) | 2023.06.01 |
---|---|
JAVA 프로그래머스 [합성수 찾기] 자바 Lv.0 (0) | 2023.06.01 |
JAVA 프로그래머스 [배열 회전시키기] 자바 (0) | 2023.05.31 |
JAVA 프로그래머스 [점의 위치 구하기] 자바 (0) | 2023.05.31 |
JAVA 프로그래머스 [2차원으로 만들기] 자바 (0) | 2023.05.31 |
댓글