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
- KDT 프로그래머스 데브코스 프론트엔드
- Frontend Roadmap
- 백준 js
- 우테캠 회고록
- 프로그래머스 K_Digital Training
- 인프런 자바스크립트 알고리즘 문제풀이
- Vue3
- KDT 프로그래머스
- 프로그래머스 K_Digital Training 프론트엔드
- useRef 지역 변수
- frontend roadmap study
- react customHook 예시
- 프로그래머스 데브코스 프론트엔드 TIL
- useEffect return
- 백준 node.js
- 모던 자바스크립트 Deep Dive TIL
- react 프로젝트 리팩토링
- 개발자 특강
- 모던 javascript Deep Dive
- 머쓱이
- 모던 자바스크립트 TIL
- Vue3 Router
- K_Digital Training
- 모던 자바스크립트 딥다이브
- 모던 자바스크립트 Deep Dive
- 리팩토링 회고
- TypeScript 문법 소개
- 프로그래머스 데브코스
- 프로그래머스 데브코스 프론트엔드
- 투포인터알고리즘 js
Archives
- Today
- Total
프론트엔드 개발자의 기록 공간
[투포인트] 결혼식 본문
🚩 결혼식 문제 (투포인트)
📖 문제 설명 : 결혼식에 참석하는 친구들의 도착 시간과 떠나는 시간이 제각각이다.
이때 최대로 겹치는 친구들의 시간을 구해라. (자세한 내용은 강의 및 문제지 참고)
* A의 떠나는 시간과 B의 도착시간이 같을 경우 겹치는 시간에서 제외한다. 즉, 떠나는 시간 미 포함
💡 도착시간, 떠나는 시간 기준으로 각각 나누어서 정렬 후 투 포인트로 시간 판단
function solution(arr) {
let answer = 0
let arrival = [] // 도착 시간
let exit = [] // 퇴장 시간
arr.forEach((element) => {
arrival.push(element[0])
exit.push(element[1])
})
arrival.sort((a, b) => a - b)
exit.sort((a, b) => a - b)
let cnt = 0 // 겹치는 인원 카운트
let i = 0 // arrival Index
let j = 0 // exit Index
while (i < arrival.length + 1 && j < exit.length) {
if (arrival[i] < exit[j]) {
cnt += 1
i += 1
} else {
cnt -= 1
j += 1
}
answer = answer > cnt ? answer : cnt
}
return answer
}
let arr = [
[14, 18],
[12, 15],
[15, 20],
[20, 30],
[5, 14],
]
console.log(solution(arr)) // 2
👨💻 코드 설명
1. 도착 시간과 떠나는 시간을 각각 나누어 오름차순 정렬
2. 투 포인트로 도착 시간 배열과 떠나는 시간 배열을 순차적으로 비교해서 떠나는 시간이
더 크다면 겹치기 때문에 카운트 +1
3. 도착 시간이 더 크다면 한 명이 빠졌기 때문에 카운트 -1
4. 2번, 3번 과정을 투 포인트로 사용한 도착 시간, 떠나는 시간 배열의 인덱스가 종료될 때까지 순회
(마지막 종료까지 카운트하기 위해 도착 시간의 인덱스는 +1까지 포함)
잘못된 설명, 코드, 예외 케이스가 있다면 댓글 남겨주시면 수정하겠습니다.
728x90
'알고리즘_JS > 인프런 JS알고리즘' 카테고리의 다른 글
[이분 탐색] 마구간 정하기 (0) | 2022.04.02 |
---|---|
[이분 탐색] 뮤직비디오 (0) | 2022.04.01 |
Least Recently Used(카카오 캐시 문제 변형) (0) | 2022.03.25 |
괄호 문자 제거(스택) (0) | 2022.03.25 |
모든 아나그램 찾기 (0) | 2022.03.25 |
Comments