[알고리즘문제풀기] n보다 커질 때까지 더하기

silver's avatar
Mar 02, 2025
[알고리즘문제풀기] n보다 커질 때까지 더하기

문제

내가 작성한 정답

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

silver