이번 문제는 친구들이랑 공 던지기 게임하는 상황을 그대로 옮겨놓은 문제였다.
처음엔 이해가 잘 안 갔는데, "한 명을 건너뛰고 던진다"는 조건이 핵심이었다
문제를 풀면서 배열 인덱스를 어떻게 처리할지 고민했따.
인덱스가 끝까지 가면 다시 처음으로 돌아와야 해서 그 부분만 잘 처리하면 되겠다 생각했다 😄
class Solution {
public int solution(int[] numbers, int k) {
int idx = 0;
for (int i = 1; i < k; i++) {
if (idx == numbers.length - 2) {
idx = 0;
} else if (idx == numbers.length - 1) {
idx = 1;
} else {
idx += 2;
}
}
return numbers[idx];
}
}
처음에 문제를 풀 때는 idx += 2로 단순히 2칸씩 건너뛰면 될 줄 알았다.
근데 배열 끝에서 다시 처음으로 돌아가야 하니까 그 부분을 처리가 중요했당..
끝에서 돌아오는 처리를 어떻게 할까 고민하다가, if (idx == numbers.length - 2)와 else if (idx == numbers.length - 1)로 끝자리를 분리했더니 됐다! 😆
이 문제를 풀면서 배열의 끝을 처리할 때 주의해야 한다는 걸 다시 한 번 느꼈답
다음엔 이런 문제에선 끝을 잘 처리하는 방법부터 떠올려야징
댓글
댓글 작성은 로그인 후에 가능합니다.