본문 바로가기

STUDY

(5)
[JS] 징검다리 건너기 프로그래머스 징검다리 건너기 난이도 LV.2 문제 풀이 프로그래머스 입국 심사와 함께 풀면 좋을 것 같다 :) '인원'을 이분 탐색하여 풀었다. 1. 인원을 이분 탐색한다. - left : 0 - right : 200000000 ( Math.max(...stones) 를 할 수도 있지만 ! 런타임 에러가 난다 😅) 2. 해당 mid 값이 가능한지 검사한다. 검사하는 방법은 간단하다. 해당 mid의 값보다 적은 stone 값을 계산하여, 그 stone들이 연속적으로 k번 반복되는지 확인한다. k번 반복되면, 그 인원으로 건너기 불가능한 것이고 k번이 반복되는 경우가 없으면, 그 인원으로 건너기가 가능한 것이다. const available = (people, stones, max) => { let coun..
[JS] 순위 검색 프로그래머스 순위 검색 난이도 LV.2 문제 풀이 처음에는 그냥 비교 탐색으로 했다. 조건에 맞는 count 면 ++ 하여서 해당 조건에 만족하는 것을 push 시켜주었다. function solution(info, query) { var answer = []; for(let q of query){ let [lan,par,car,last]=q.split("and").map(item=>item.trim()) let [foo,sco]=last.split(" "); let count=0; for(let i of info){ let [a,b,c,d,e]=i.split(" "); if(lan==="-" || lan===a){ if(par==="-" || par===b){ if(car==="-" || car===c..
[JS] 교점에 별 만들기 프로그래머스 교점에 별 만들기 난이도 2 문제 접근 1. 교점을 찾는다. - 교점을 찾는 방법은 문제에 나와 있다. const x=(b*f-e*d)/(a*d-b*c); const y=(e*c-a*f)/(a*d-b*c); x, y 가 정수인 경우에만 판단을 해주면 되는데, Number.isInteger() 을 이용하면 정수인지 아닌지 확인이 가능하다. 2. 최소의 영역을 찾아준다. 모든 별을 포함하는 최소한의 크기를 return 해주어야하기 때문에 그릴 수 있는 영역을 최소한으로 잡아준다. (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4) 만약에 정수로 된 교점이 위와 같다고 예제를 들어본다. 그렇게 되면 x 최소=-4 , x최대=4, y 최소=-4, y 최대=4 이렇게 되고, ..
JS로 알고리즘하기 자바스크립트로 알고리즘 풀기 외길 인생을 즐기고 있습니다 .. ✨ 자바스크립트로 알고리즘을 풀면 가끔 너무 외로운 순간들이 있습니ㄷr .. 예를 들면 2022 카카오 테크 인턴십 - 두 큐 합 같게 만들기 파이썬 Queue 로 굴리면 정답인데, JS 배열 이용하면 광탈인 문제가 있다 class를 이용해서 직접 구현해서 풀어야 정답인 그런 문제들.. 🔕 하지만 자식같은 자바스크립트를 내칠 수 없길래 차근차근 구현을 정리해보려고 한다 🫶 Queue - 추천 문제 : 2022 카카오 테크 인턴십 - 두 큐 합 같게 만들기 push, pop은 기존 배열에서 O(1)로 가능하지만, 큐와 같은 경우에는 push 는 O(1)이지만, shift 는 O(n)이다. 배열을 사용하면 큐를 편리하게 구현할 수 있을 것 같은데..
[JS | 알고리즘] BFS 와 0-1 BFS 기본 BFS 기본 BFS는 최단 거리를 고려해줄 때 알맞는 알고리즘이다. 1 ) 로직 표에서 움직일 수 있는 동서남북이 필요하다 동서남북은 dx, dy 로 표현하게 된다. 2차원 배열 [1][1]을 기준으로 남쪽은 [1+1][1] (=[2][1]) 이 되는 셈이다. 추천 문제 | 1687 숨바꼭질 5014 스타트링크 10026 적록색약 0-1 BFS 기존에 있는 BFS 보다 시간복잡도가 낮아서 잘 활용한다면, 유용하게 쓸 수 있다. 0-1 BFS는 가중치를 고민해주는 방법이다. 가중치가 낮은 것(0) 은 가중치가 높은 것(1) 보다 비용 없이 이동할 수 있으니 먼저 고려해주는 것이다. 1 ) 로직 ( Queue) 가중치가 낮은 것은 unshift 가중치가 높은 것은 push 추천 문제 | 1261 알고스..