Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 자바스크립트 문제풀이
- 자바스크립트 알고리즘 문제
- Baekjoon
- 타입스크립트
- 자바스크립트 연결리스트
- 자바스크립트
- 리액트
- JavaScript
- 알고리즘문제풀이
- 리액트쿼리
- 프론트엔드
- 자바스크립트 문제
- stack문제
- 자바스크립트코딩테스트
- NPM
- HTML
- leetcode문제풀이
- til
- lodash
- CSS
- 자바스크립트 알고리즘
- next13
- react
- leetcode
- 프로그래머스
- Next.js13
- 제로베이스
- Next
- JS
- 자바스크립트 문제 풀이
Archives
- Today
- Total
코드노트
자바스크립트 배열 문제 풀이 - 배열 중 높은값 2개 찾기 본문
Q. 배열에서 높은값 2개를 찾아서 출력하기.
2개의 수를 뽑는 방법은 여러방법이 있다.
먼저 오름차순으로 변경 후 앞에 인덱스 2개만 반환시키게 되면 끝나는 문제다.
그러나 하나씩 비교해가면서 두개의 값을 출력해야하면 어떻게 해야할까?
1.배열 첫번째 두번째 값을 먼저 비교하여 정해준다.
result = nums[1] > nums[0] ? [nums[1], nums[0]] : [nums[0], nums[1]];
- 배열의 1번과 0번째를 비교하여 정해준다.
- 다음 for문에서 첫번째와 두번째의 크기로 비교하면서 최대값들을 찾도록 한다!
2. 더한 값에 100을 뺀다.
for (let i = 0; i < nums.length; i++) {
if (nums[i] > result[0]) {
result[1] = result[0];
result[0] = nums[i];
} else if (nums[i] > result[1]) {
result[1] = nums[i];
}
}
- nums[i] > result[0] // 배열의 첫번째 값 보다 새로 들어오는 배열의 수가 크게 되면?
- result[1] = result[0] // 기존의 0번째 값은 출력값 1번으로 옮긴다.
- result [0] = nums[i] // 기존의 0번째 값에 새로 들어온 큰 수를 넣어준다.
- nums[i] > result[1] // 배열의 첫번째 값보다는 작지만 2번째 값보다 크다면?
- result[1] = nums[i] // 배열의 두번째 값에 저장한다.
그렇게 첫번째 큰값과 두번째 큰값을 저장하여 출력하면 배열의 가장 큰 수 2개를 찾을 수 있다.
★다른방법
* sort를 통해서 오름차순을 변경!
- 앞 두개의 값을 결과물로 반환!
let result = [];
function sum(x, y) {
return y - x;
}
let res = nums.sort(sum);
for (let i = 0; i < 2; i++) {
result.push(res[i]);
}
'Code note > 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
자바스크립트 배열 문제 풀이 - 배열 내 두 값 == 합 (0) | 2022.08.23 |
---|---|
자바스크립트 배열 문제 풀이 - 나무 만들기 (0) | 2022.08.23 |
자바스크립트 배열 문제 풀이 - 배열의 정해진 합을 만족하는 요소 (0) | 2022.08.23 |
자바스크립트 배열 문제 풀이 - 배열 비교(체스) (0) | 2022.08.22 |
자바스크립트 배열 문제 풀이 - 수열 최소값 위치 찾기 (0) | 2022.08.22 |