문제 설명
정수 배열 numbers와 정수 n이 매개변수로 주어집니다. numbers의 원소를 앞에서부터 하나씩 더하다가 그 합이 n보다 커지는 순간 이때까지 더했던 원소들의 합을 return 하는 solution 함수를 작성해 주세요.
제한사항
1 ≤ numbers의 길이 ≤ 100 1 ≤ numbers의 원소 ≤ 100 0 ≤ n < numbers의 모든 원소의 합
나의 코드
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for(int i=0; i<numbers.length; i++) {
answer += numbers[i];
if(answer>n) break;
}
return answer;
}
}
다른 사람 코드
class Solution {
public int solution(int[] numbers, int n) {
int answer = 0;
for(int i = 0; answer <= n; i++) {
answer += numbers[i];
}
return answer;
}
}
break
문 대신 for
문의 조건 조정
느낀 점
엄청 쉽다하고 바로 풀었는데 다른 사람 코드를 보니 굳이 break
문을 쓰지 않더라도 애초에 조건을 줘서 풀 수도 있었다. 보다 가독성 좋고 효율적인 코드를 짜보자