자바스크립트

Javascript/문제풀이

[프로그래머스] Lv. 2 [1차] 캐시 - 자바스크립트 풀이

문제 문제 링크 설명 cache hit일때, 삽입정렬을 응용해서 풀었다. 코드 function solution(cacheSize, cities) { const CACHE_HIT_TIME = 1; const CACHE_MISS_TIME = 5; let cache = Array.from({ length: cacheSize }); let total = 0; for (let city of cities) { city = city.toLowerCase(); let idx = cache.indexOf(city); if (idx !== -1) { // cache hit for (j = idx - 1; j > -1; j--) { cache[j + 1] = cache[j]; } cache[0] = city; total +..

Javascript/기타

[Javascript] findIndex()와 indexOf()의 차이

✅공통점 자바스크립트에서 findIndex()와 indexOf()는 둘 다 배열(Array)에서 특정 값을 찾는 메서드이다. 하지만 둘 사이에는 몇 가지 중요한 차이점이 있다. ❌차이점 비교 방식의 차이 findIndex(): 배열의 각 요소에 대해 콜백 함수를 실행하며, 콜백 함수의 반환값이 true인 첫 번째 요소의 인덱스를 반환한다. 즉, 콜백 함수에 사용자 정의의 비교 로직을 적용할 수 있다. indexOf(): 주어진 값과 배열의 요소를 엄격한(===) 비교를 통해 찾는다. 값의 타입과 값이 모두 일치하는 요소를 찾아 인덱스를 반환한다. 사용 가능한 환경의 차이 findIndex(): ECMAScript 2015(ES6)에서 도입된 메서드로, 브라우저 및 일부 환경에서 지원하지 않을 수 있다. ..

자료구조, 알고리즘

[자료구조] 큐(Queue) - 자바스크립트로 구현하기

설명 연결 리스트는 삽입과 삭제의 시간 복잡도가 O(1)이다. 따라서 큐를 배열이 아닌 연결리스트로 구현하면 성능상 이점이 있다. 단일 연결 리스트로 구현해서 삽입은 맨 뒤에, 삭제는 맨 앞에서 진행한다. (삭제를 뒤에서 하면 시간이 오래 걸리기 때문이다.) 코드 class Node { constructor(value){ this.value = value; this.next = null; } } class Queue { constructor(){ this.first = null; this.last = null; this.size = 0; } enqueue(val){ var newNode = new Node(val); if(!this.first){ this.first = newNode; this.last ..

Javascript/문제풀이

[프로그래머스] Lv.2 숫자의 표현 - 자바스크립트 풀이

문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 설명 수학적 지식으로 푼 분들도 계셨다. 나는 백준 2003번 수들의 합 2 문제처럼 투포인터 방식을 응용해서 풀었다. 코드 function solution(n) { let sum = 0; let answer = 0; let left = 1; for (let right = 1; right n) { while (sum > n) { sum -= left; left++; if (sum === n) answer++; } } } return answer; }

Javascript/문제풀이

[프로그래머스] Lv. 3 네트워크 - 자바스크립트 풀이

문제 바로가기 설명 DFS나 BFS를 알면 쉽게 풀 수 있는 문제이다.visited를 초기화 할 때, Array.from()을 사용했다.아래와 같은 다른 방식들도 가능하다. visited = new Array(n).fill(false); let visited = []; for(var i =0; i false); let queue = []; function bfs(number) { if (visited[number]) { return; } answer++; visited[number] = true; queue.push(number); while (queue.length) { node = queue.shift(); visited[node] = true; for (let i = 0; i < n; i++) { ..

Javascript/문제풀이

[프로그래머스] Lv.2 타겟 넘버 - 자바스크립트 풀이

문제 [프로그래머스] Lv.2 타켓 넘버 설명 DFS로 풀었다. dfs함수의 인자로 인덱스와 부호를 넘겨주었다. 1. 배열의 마지막 요소일 때 sum === target 이라면 answer를 1증가 2. 배열의 다음 요소를 +일때와 -일때 2개로 나누어 dfs로 호출한다. 코드 function solution(numbers, target) { let sum = 0; let answer = 0; function dfs(i, sign) { if (i === numbers.length - 1) { if (sum === target) { answer++; } } else { //+ sum += numbers[i + 1]; dfs(i + 1, "+"); sum -= numbers[i + 1]; //- sum -=..

Javascript/문제풀이

[Javascript] 미로탐색

[인프런] 자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비) - 미로탐색 내 코드 function solution(board) { let answer = 0; let visited = Array.from(Array(7), () => Array(7)); let dx = [0, 0, -1, 1]; let dy = [-1, 1, 0, 0]; function DFS(x, y) { if (x === 6 && y === 6) { answer++; return; } for (let i = 0; i = 7 || ny = 7) { continue; } if (!visited..

리즈(Liz)
'자바스크립트' 태그의 글 목록