[문제] 배열에서 합계 계산하기.
Markers opened this issue · comments
Markers commented
질문
1 에서 시작하여 10 까지의 자연수 10개가 배열로 되어있다고 했을때, 배열 전체의 합을 구하는 방법!
일반적으로 반복문(for)를 사용할텐데, 반복문을 포함해서(혹은 사용하지 않고) 구할 수 있는 방법을 생각해봅시다.
관련 챕터
27장 배열 / 8장 제어문
참고
Markers commented
단순 생각으로
- 반복문(for, for each) 사용
- 배열의 내장함수 사용
- 재귀함수 사용
생각됩니다만, 또 다른 방법이나 유사방법이지만 꼼수라던지 팁이 있으면 알려주세요~!
Pur commented
1에서 시작해 10까지의 자연수로 이루어진 배열처럼, 연속된 수의 합계를 구한다면
배열의 양 끝을 더한 값 * 배열의 길이 / 2 로 구하는 방법도 있습니다.
연속된 숫자배열에서 배열의 양 끝을 더한 값은 동일하니까요. (1 + 10 | 2 + 9 | 3 + 8... )
const num = [1,2,3,4,5,6,7,8,9,10];
const sum = (num[0] + num[num.length-1]) * (num.length / 2);
Markers commented
@live-small
아 수학적으로 아예 풀어버리는 방법도 있네요..ㅋㅋ
제가 생각을 10개의 배열속에 있는 요소들의 상관관계(1씩 증가하는 숫자)들을 배제할 경우만 생각해서...ㅋ
만약 상관관계를 알 수 없을 경우에는 저 3가지 방법 말곤 더 없겠죠?
Pur commented
네. 상관관계를 알 수 없을 땐, 요소에 직접 접근해서 하나하나 더하는 방법밖엔 없을 거 같아요.
말씀하신대로 for문(for, for of, forEach), API (reduce) 등이 생각나네요.