일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- CSS
- til
- 자바스크립트코딩테스트
- 타입스크립트
- 자바스크립트 연결리스트
- JS
- Baekjoon
- 프로그래머스
- 자바스크립트 문제 풀이
- leetcode
- lodash
- 리액트쿼리
- Next
- 프론트엔드
- 알고리즘문제풀이
- NPM
- next13
- Next.js13
- 리액트
- 자바스크립트 알고리즘 문제
- react
- stack문제
- 자바스크립트 문제풀이
- 자바스크립트 알고리즘
- leetcode문제풀이
- HTML
- 제로베이스
- 자바스크립트
- JavaScript
- 자바스크립트 문제
- Today
- Total
코드노트
자바스크립트 배열 문제 풀이 - 배열의 정해진 합을 만족하는 요소 본문
Q. 배열이 9개가 있다.
배열에서 7개를 더하면 100이 된다.
9개의 배열중에서 2개를 빼고 7개로 합이 100이 되는 배열을 출력해야 한다.
처음 생각 했을 때는 경우의수를 통해서 9개의 배열중에 7개의 를 경우의수로 뽑아 전체 합이 100이 되는 수를 계산해볼까? 라는 생각을 했다.
그렇게 하기에는 너무 많은 경우의 수가 있기 때문에
9개를 모두 더한 후 100을 뺀 값에 만족하는 두 수를 찾으려고 했다.
1. 배열의 값을 모두 더한다.
2. 더한 값에 100을 뺀다.
3. 뺀 값에 만족하는 2개의 수를 찾아낸다.
4. 기존 배열과 비교하여 2개를 빼고 출력한다.
1. 배열의 값을 모두 더한다.
2. 더한 값에 100을 뺀다.
let sum = 0;
for (let i = 0; i < dwarf.length; i++) {
sum += dwarf[i];
}
sum -= 100;
- 더해진 값을 저장할 변수를 만든다.
- for문을 통해서 모두 더하고 변수값에서 바로 100을 빼서 저장한다.
3. 뺀 값에 만족하는 2개의 수를 찾아낸다.
let res = [];
for (let i = 0; i < dwarf.length; i++) {
for (let j = i + 1; j < dwarf.length; j++) {
if (sum == dwarf[i] + dwarf[j]) {
res.push(dwarf[i], dwarf[j]);
}
}
}
- 빈 배열 변수를 만든다.
- j를 돌리는 for 문은 시작할 지점을 i + 1 로 잡아준다. 같은 수를 비교할필요 없기 때문!
- for문을 2개를 돌리면서 i + j = sum 이 성립하는 수를 빈 배열변수에 넣어준다.
4. 기존 배열과 비교하여 2개를 빼고 출력한다.
for (let i = 0; i < dwarf.length; i++) {
if (dwarf[i] != res[0] && dwarf[i] != res[1]) {
result.push(dwarf[i]);
}
}
기존배열과 함께 뺼 배열과 같은 배열들을 조건으로 나머지를 출력한다.
★다른방법
* 굳이 배열값을 받지 않고 인덱스 값을 받아서 사용해도 되었다.
for (let i = 0; i < dwarf.length; i++) {
if (dwarf[i] != res[0] && dwarf[i] != res[1]) {
result.push(dwarf[i]);
res[0] = i;
res[1] = j;
break;
}
if(res.length != 0) break; // 모두 찾으면 정지
}
res 값에 인덱스로 저장!하여 인덱스로 비교하여 출력.
'Code note > 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
자바스크립트 배열 문제 풀이 - 나무 만들기 (0) | 2022.08.23 |
---|---|
자바스크립트 배열 문제 풀이 - 배열 중 높은값 2개 찾기 (0) | 2022.08.23 |
자바스크립트 배열 문제 풀이 - 배열 비교(체스) (0) | 2022.08.22 |
자바스크립트 배열 문제 풀이 - 수열 최소값 위치 찾기 (0) | 2022.08.22 |
자바스크립트 알고리즘 등차수열의 항 찾기 (0) | 2022.08.22 |