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
- lodash
- CSS
- leetcode
- 자바스크립트 문제 풀이
- 제로베이스
- HTML
- stack문제
- 타입스크립트
- NPM
- react
- JS
- next13
- 리액트
- 알고리즘문제풀이
- leetcode문제풀이
- Baekjoon
- 자바스크립트
- 자바스크립트 문제
- 리액트쿼리
- 자바스크립트 문제풀이
- 프론트엔드
- 자바스크립트 알고리즘 문제
- 프로그래머스
- 자바스크립트 연결리스트
- Next.js13
- 자바스크립트코딩테스트
- JavaScript
- til
- Next
- 자바스크립트 알고리즘
Archives
- Today
- Total
코드노트
알고리즘 연습 / 잃어버린 수열 찾기 본문
예를 들어 3, 8, x, 18... 이 있을 때 빠진 등차 수열 x를 찾아서 반환해야한다.
초항은 3이다.
1. x의 등차 값을 찾는 방법은?
[0] [1] [2] 배열의 인덱스로 생각하면 [0] [1], [1] [2] 의 등차 값을 구해서 더하고 나누기 3을 해준다.
3과 8의 등차는 5.
8과 18의 등차는 10.
(5 + 7) / 3은? 5
let y;
for (let i = 1; i < num.length; i++){
y += num[i] - num[i - 1]
}
y /= num.length;
- y값에 배열의 인덱스를 하나씩 빼가면서 값을 더해준다.
ex) num[1] - num[0]
num [2] - num[1]
- 더한 y의 값에 배열의 길이만큼 나누어서 공차를 구한다.
2. 빈 index 찾기
빈 index를 찾으려면 공차가 높은 인덱스를 찾아서 반환 시킨다.
--- 여기서 왜 인덱스를 반환 시킬까?
--- 인덱스를 반환시켜 이전 값을 구할 때 인덱스만큼 곱하기를 해주면 없어진 x값을 구할 수 있다.
let index = num[2] - num[1] > num[1] - num[0] ? 2 : 1;
2와 1사이의 공차가 크면 2를 반환 1과 0 사이의 공차가 크면 1을 반환하도록 한다.
3. 이전 값과 x의 값 구하기
x = num[0] + y * index;
ex) 3, 8, x, 18...
1. y = 5
2. 18 - 8 > 8 - 3 = 2가 반환
3. x = 3 + 5 * 2 = 13
3, 8, 13, 18 을 찾을 수 있다.
'Code note > 자바스크립트 알고리즘 문제풀이' 카테고리의 다른 글
자바스크립트 배열 문제 풀이 - 수열 최소값 위치 찾기 (0) | 2022.08.22 |
---|---|
자바스크립트 알고리즘 등차수열의 항 찾기 (0) | 2022.08.22 |
javascript 배열을 문자로, 문자를 배열으로 문자교정 문제 풀이 (0) | 2022.08.12 |
javascript 반복문 문제 풀이 정리 (0) | 2022.08.03 |
자바스크립트 알고리즘 문제 풀기 require("fs") (0) | 2022.07.21 |