Front-End Dev.
-
[Axios] Axios : 비동기 통신 라이브러리Environment(개발환경)/Web 2021. 3. 4. 04:23
🤔 서론 3차 프로젝트를 진행중이고, redux-saga를 통한 로그인/회원가입 서버통신을 구현하면서 axios를 적용하는 예제를 보았다. fetch() 함수와 비슷한 역할을 수행하면서도, HTTP 메서드를 간결하게 적용할 수 있어서 유용한 라이브러리 같았다. 이번 기회에, Axios라는 라이브러리는 무엇인지, 많이 연계되는 Ajax 나 fetch() 와의 차이에 대해서도 짚고 넘어가려고 한다!! 💜 Axios 란? Axios는 브라우저와 Node.js 를 위한 Promise API를 활용하는 HTTP 비동기 통신 라이브러리이다. 즉, 프론트와 백의 비동기 통신이 좀 더 원활하도록 도와주는 자바스크립트 라이브러리이다. Axios의 기능은 아래가 있다. 브라우저 환경: XMLHttpRequests 요청 생..
-
[CodeKata] 프로그래머스 : 3.3(수), 올바른 괄호 & 튜플Algorithm 2021. 3. 3. 12:45
🥋 Ooooth!! (Level 2) : 올바른 괄호 🧮 풀이 function solution(s){ let stack = []; let stackNum = 0; for (let bracket of s) { if (bracket === '(') { stack.push(bracket) stackNum++ } else { stack.pop(); stackNum-- } } return stack.length === 0 && stackNum === 0 } stack 과 stackNum 2가지 형태의 스택으로 s(괄호 문자열)의 누적값을 관리할 것이다. s(괄호 문자열)을 순회하며, '(' 라면 stack 배열 push & stackNum++, ')' 라면 stack 배열 끝을 pop() & stackNum-- ..
-
[CodeKata] 프로그래머스 : 3.2(화), 가장 큰 정사각형 찾기Algorithm 2021. 3. 2. 14:25
🥋 Ooooth!! (Level 2) 🧮 풀이 * 정확성 테스트 1개 실패, 효율성 테스트 실패로 통과하지 못했다. function solution(board) { let answer = 1; for (let i = 0 ; i board.length-1 || j+answer > board[0].length-1) { break; } answer++; if (board.slice(i, i+answer).map(row => row.slice(j, j+answer))..
-
[CodeKata] 프로그래머스 : 3.1(월), 쿼드압축 후 개수Algorithm 2021. 3. 1. 11:55
🥋 Ooooth!! (Level 2) 🧮 풀이 function solution(arr) { let l = arr.length; const count = arr.flat().filter(e => e === 0).length; let answer = { 0: count, 1: l*l - count, }; let check = Array.from({length: l}, () => Array.from({length: l}, () => false)) while (l > 2) { for (let i = 0 ; i < arr.length ; i += l/2) { for (let j = 0 ; j < arr.length ; j += l/2) { const quadBox = arr.slice(i, i+l/2).map(e..
-
[CodeKata] 데일리 프로그래머스 : 2.27(토), 순위 검색Algorithm 2021. 2. 27. 18:18
🥋 Ooooth!! (Level 2) 🧮 풀이 function solution(info, query) { let answer = [] info = info.map(e => e.split(' ')) query = query.map(e => e.split(' ').filter(f => f !== 'and')) for (let q of query) { let nowInfo = info.filter(e => Number(e[4]) >= Number(q[4])); for (let i = 0 ; i e[i] === q[i]) } } answer.push(nowInfo.length) } r..
-
[CodeKata] 프로그래머스 : 2.26(금), 타겟 넘버, 카펫Algorithm 2021. 2. 26. 15:28
🥋 Ooooth!! (Level 2) : 1️⃣ 타겟 넘버 🧮 풀이 function solution(numbers, target) { let answer = 0; function DFS(idx, now, acc) { acc += now; if (idx === numbers.length - 1) { answer = acc === target ? answer + 1 : answer; return; } DFS(idx+1, numbers[idx+1], acc) DFS(idx+1, -numbers[idx+1], acc) } DFS(-1, 0, 0); return answer; } answer는 최종정답이자, 누적값(acc)과 target이 일치할 때 1을 더하는 변수가 될 것이다. DFS() 깊이우선탐색 함수를 ..
-
[CodeKata] 프로그래머스 : 2.24(수), 위장Algorithm 2021. 2. 24. 13:40
🥋 Ooooth!! (Level 2) 🧮 풀이 function solution(clothes) { let clothObj = {}; for (let item of clothes) { clothObj[item[1]] = !clothObj[item[1]] ? [item[0]] : [...clothObj[item[1]], item[0]] } return Object.values(clothObj).map(arr => arr.length + 1).reduce((acc, cur) => acc * cur) - 1 } 먼저 옷을 부위(?)별로 정리할 객체(clothObj)를 만든다. clothes 를 순회하며 각 item을 객체에 정리한다. 1번째 요소는 부위이므로 key로 한다. 0번째 요소는 옷 종류이므로 key값..