문제
내가 작성한 정답
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for(int i : numbers){
answer += i;
if(answer > n) break;
}
return answer;
}
}
다른 사람들의 정답
: for문에 answer의 조건을 넣어 원하는 범위까지만 for문을 돌렸다.
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for(int i = 0; answer <= n; i++) {
answer += numbers[i];
}
return answer;
}
}
for문에 조건으로 i가 아닌 다른 루프 조건을 넣는 경우
→ 이 문제에서는 발생할 수 없지만 배열의 범위 초과 오류가 발생할 수 있다
: answer가 n을 초과하는 순간 루프가 종료되므로, i가 배열의 길이를 초과할 수 있다. 이 경우 numbers[i]에 접근할 때 ArrayIndexOutOfBoundsException이 발생할 수 있다.
Share article