반응형

javascript 57

[JavaScript] 고차 함수 some(), every() 사용 방법

고차 함수 고차 함수란? 함수를 인자로 전달받거나 함수를 결과로 반환하는 함수를 말한다. 1. every() 콜백 함수에서 배열의 모든 요소가 True이면, true를 리턴 1-1) 기본 형식 array.every(callbackFunction(currentValue, index, array), thisArg) callbackFunction : 콜백 함수 thisArg : this값으로 활용 currentValue : 배열의 현재 값 index : 배열의 현재 값의 인덱스 array : 현재 배열 1-2) 사용 예 let arr = [1,2,3,4,5,6]; const callBack = (val) => val < 6 arr.every(callBack) // 하나라도 false면, false arr.ev..

JavaScript 2022.11.28

[프로그래머스/JavaScript] Lv.2 귤 고르기

해당 문제는 Hash와 정렬을 활용하는 문제입니다. 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 귤의 크기별 개수를 담은 map을 생성하고, 해당 map을 정렬하여 BOX에 담는 귤을 구한다. function solution(k, tangerine) { // 1) 귤의 크기별 개수를 담을 map 생성한다. const kind = new Map(); let answer =0 ; // 2) 크기별 개수를 구한다. tangerine.forEach(org => { kind.set(org, kind.has(org) ? kind.get(org)+1 : ..

Algorithm 2022.11.25

[프로그래머스/JavaScript] Lv.2 수식 최대화

재귀 함수를 통해 답을 도출 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 풀이 사용 가능한 연산자를 반복하는 DFS 함수, 수식에 해당 연산자를 포함하고 있는 값들을 계산하는 재귀 함수를 사용하여 해당 문제를 풀었다. let answer = []; function solution(expression) { // 1) 사용 가능한 연산자를 배열에 담는다. const opts = ["+", "-", "*"]; // 2) 문자열을 연산자를 구분으로 배열로 변환한다. 해당 배열은 구분 연산자 또한 포함한다. let cal = expression.split(..

Algorithm 2022.11.24

[프로그래머스/JavaScript] Lv.2 타겟넘버

해당 문제는 DFS문제로 경우의 수를 구하는 문제이다. * BFS 사용 예 - 최단거리, 최소 횟수, 미로, 탐색 등 * DFS 사용 예 - 경우의 수, 이동 과정에 제약 있음 등 문제 https://school.programmers.co.kr/learn/courses/30/lessons/43164 문제 풀이 let answer = 0 function solution(numbers, target) { // 1) DFS 함수 최초 실행 합(sum), 인덱스(idx) 0으로 셋팅 dfsSum(0, numbers, 0, target); return answer; } function dfsSum(sum, numbers, idx, target) { // 2) 인덱스(idx)가 배열 길이와 같아지면 return한다..

Algorithm 2022.11.20

[프로그래머스/JavaScript] Lv.2 숫자의 표현

해당 문제는 완전 탐색을 통해 답을 도출하는 문제이다. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12924 완전 탐색 이란? '무식하게 푼다(brute-force)'는 컴퓨터의 빠른 계산 능력을 이용해 가능한 모든 경우의 수를 체크해서 정답을 찾는 방법이다. 1. 완전 탐색 기법을 활용하는 방법 1) 해결하고자 하는 문제의 가능한 경우의 수를 대략적으로 계산한다. 2) 가능한 모든 방법을 다 고려한다. - Brute Force 기법 - for문 / if문을 활용 - 순열(Permutation) - n개의 원소 중 r개의 원소를 중복 허용 없이 나열하는 방법 - 재귀 호출 - 비트 마스크 - 2진수 표현 기법을 활용하는 방법 - BFS, ..

Algorithm 2022.11.19

[프로그래머스/JavaScript] Lv.2 게임 맵 최단거리

최단거리를 구하는 문제로 너비 우선 탐색(BFS) 문제 유형이다. ( 최단거리는 BFS !!) BFS 란? 현재 정점에 연결된 가까운 점들부터 탐색하는 방법으로 큐를 이용해서 구현한다. function solution(maps) { let answer = 1; let queue = []; const dx = [-1, 1, 0, 0]; const dy = [0, 0, -1, 1]; const n = maps.length; const m = maps[0].length; // 시작 위치 담기 queue.push([0, 0]); // 지나간 위치를 0으로 막는다.(시작 위치도 지나간 위치 이므로 막음) maps[0][0] = 0; // 큐에 담긴 값이 없을 때까지 반복한다. while(queue.length >..

Algorithm 2022.10.28

[JavaScript] slice를 이용한 배열의 원소 교체

기존 원소의 위치가 바뀌지 않게 교체 한다. 1. 원소의 위치 구하기 (Index) const food = ["pizza", "mango", "kimhi", "kimbaba"]; const targetIndex = food.findIndex((food) => food === "mango"); 2. 배열을 두 부분으로 나누기 앞 부분은 “mango”(타겟 원소) 이전의 모든 원소를 담은 배열, 뒷 부분은 이후 원소의 배열. const front = food.slice(0, targetIndex); const back = food.slice(targetIndex + 1); // mango => 감 교체 const finalPart = [...front, "감", ...back]; “ …배열명 ” : 배열 안..

JavaScript 2022.09.07
반응형