본문 바로가기

분류 전체보기

(99)
largestProductOfThree 문제풀이 문제: 정수를 요소로 갖는 배열을 입력받아 3개의 요소를 곱해 나올 수 있는 최대값을 리턴해야 합니다. 입력: 인자1 : arr number 타입을 요소로 갖는 임의의 배열 출력: number 타입을 리턴해야 합니다. 주의사항: 입력으로 주어진 배열은 중첩되지 않은 1차원 배열입니다. 배열의 요소는 음수와 0을 포함하는 정수입니다. 배열의 길이는 3 이상입니다. 입출력 예시: let output = largestProductOfThree([2, 1, 3, 7]); console.log(output); // --> 42 (= 2 * 3 * 7) output = largestProductOfThree([-1, 2, -5, 7]); console.log(output); // --> 35 (= -1 * -5 *..
[javaScript] arr.sort() 배열 정렬하기 💡 sort() 소개 🔹역할: 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환한다. 🔹생김새: arr.sort([비교함수]) 🔹특징: 비교함수를 인수로 전달하지 않으면 요소는 문자열로 취급되어 재정렬된다.* 배열 자체를 변경(mutable)한다. 재정렬된 배열을 반환하긴 하지만, mutable이기 때문에 원본 arr를 주로 사용한다. *기본 정렬 예시를 보려면 아래를 클릭하세요 더보기 유니코드는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준이다. 각각의 문자에 해당하는 숫자값이 정해져있는데, 비교함수를 지정하지 않으면 그 숫자값에 따라서 오ㅡㄹㅁ차순으로 정렬된다. const arr = [1,10,12,13,2,21,22,23,30,4,1000,-1,-10,-..
[React] 메모이제이션(Memoization) 무엇이고, 언제 어떻게 쓸까? 본 글은 다음의 글을 의역하고 추가한 글입니다. https://www.freecodecamp.org/news/memoization-in-javascript-and-react/ 이번 글은 메모이제이션에 대해 알아보려 합니다. 메모이제이션(memoization)은 무거운 연산 과정을 더 효율적으로 계선해주는 기술입니다. 이 글에서 메모이제이션이 무엇이고, 어떤 곳에 사용할때 좋을지에 대해 이야기 해볼 것입니다. 자바스크립트와 리액트에서의 예시도 나와있습니다.😊 💡 메모이제이션이란? 프로그래밍에서 메모이제이션이란 애플리케이션을 더욱 효율적이고 빠르게 만들어주는 최적화 기술입니다. 메모이제이션이 최적화 할 수 있는 원리는 바로 연산의 결과를 캐시에 저장해 놓고, 다음번에 동일한 연산이 필요할 때에 캐시로 부터 ..
UI와 UX의 차이, 좋은 UX란 무엇일까? 💡 UI(user interface)란 사용자 인터페이스(UI)란 사용자가 제품이나 서비스를 사용하게 될 때 마주하는 물리적, 비물리적 대면점이다. 예전에는 많았지만 지금은 없어진 휴대폰의 홈버튼, 혹은 휴대폰 옆쪽에 음량 및 전원버튼, 혹은 세탁기를 돌리기 위한 전원버튼 등등 버튼이 물리적으로 만들어져있고, 사용자가 그걸 사용하는 경우도 UI를 사용한다고 본다. 하지만 보통 우리가 UI 디자인이라고 생각하면 가장 보편적인 것이 바로 모바일이나 pc에서 화면으로 구현되는 인터페이스를 생각하는데, 예를들면 웹페이지나 사이트, 모바일 웹,키오스크 등등이 있다.이런 그래픽 UI를 특수하게 GUI(Graphic User Interface)라고 부른다. 🛑 따라서 UI는 물리적인터페이스와 비물리적 인터페이스를 모..
[javaScript] 재귀 함수와 메모리 사용량 간의 관계 📌 재귀함수란 재귀함수는 함수 내에서 자기 자신을 다시 호출하는 방법이다. 🤼‍♀️ 재귀 vs 반복문 재귀 반복문 장점 코드가 짧고 간결하다. 유지보수가 쉬워진다. 메모리가 절약된다. 속도가 상대적으로 빠르다. 단점 메모리 차지가 크다. (📌 아래에서 설명 예정) 깊이 제한이 있다. (엔진에 따라 다르지만, 십만까지는 보통 불가능) 속도가 상대적으로 느리다. 코드가 길고 복잡하다. 분기문이 복잡하게 얽혀있을 때는 재귀에 비해 크게 메모리가 절약되는 것은 아니다. 반복문 코드 function pow(x, n) { let result = 1; // 반복문을 돌면서 x를 n번 곱함 for (let i = 0; i < n; i++) { result *= x; } return result; } 재귀 코드 func..
피보나치 문제풀이 두가지: O(n),O(n^2) 문제: 아래와 같이 정의된 피보나치 수열 중 n번째 항의 수를 리턴해야 합니다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1입니다. 그 다음 2번째 피보나치 수부터는 바로 직전의 두 피보나치 수의 합으로 정의합니다. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... 입력: 인자1 : n number 타입의 n (n은 0 이상의 정수) 출력: number 타입을 리턴해야합니다. 주의사항: 재귀함수를 이용해 구현해야 합니다. 반복문(for, while) 사용은 금지됩니다. 함수 fibonacci가 반드시 재귀함수일 필요는 없습니다. 입출력 예시: let output = fibonacci(0); console.log(output); // --> 0 output = fibona..
재귀함수 문제 풀이 재귀함수 문제 풀이 순서 1. 입출력값을 확인하고 시뮬레이션 해본다. 2. base case를 생각해본다. 3. recursive case를 생각해본다. 4. edge case를 정리한다. 5. 코드를 작성한다. 종료조건(base case): 적어도 하나의 무한반복에 빠지지 않는 경우 재귀조건(recursive case): 종료조건을 만족시키지 못한 나머지 경우 재귀함수 문제 풀이 주의 사항 1. 의사코드로 시뮬레이션을 몇번 적어보는 것이 도움이 된다. 2. 의사코드로 정리를 잘 하는 것이 중요하다. 3. 재귀함수를 써야할 때 가장 효율적으로 쓰인걸 까 고민해봐야한다.(관련 개념: 빅오 표기법) 4. 때에 따라서 클로저를 재귀함수로 사용할 수도 있다. 5. 재귀함수의 리턴문이 함수를 호출하는 부분과 일반..
[코드스테이츠 FE 부트캠프 40기] 섹션2 회고 🏔나의 목표 되새기기 요즘 로버트C.마틴의 에 추천사에서 이런문구가 있었다. "소프트 웨어는 80%이상이 유지보수다" 이 문구를 보고 많은 것을 생각해보게 되었는데, 생각해보니 내가 유지보수의 중요성을 간과했구나 싶은 생각이 들었다. 내가 기능구현에만 집중하고 코드를 알아보기 쉽게 짜는 일에 소홀하다면 난 결국 20%만 신경 쓴 개발자가 되는 것이다. 80%가 구멍난 결과물을 만들어내면 그 구멍때문에 두고두고 나는 물론 다른 사람들도 고생하게 될것이다. 그런 개발자는 아무리 대단한걸 만들었어도 결국 책임감없다고 두고두고 회자될 것이다. 열심히 만들고 그런 소리 듣기는 싫지 않은가… 그래서 이렇게 얻은 깨달음을 되새기며 개발자로서의 목표의 하나를 추가하게 되었다. "회사,또는 다른 개발자가 믿고 코드를 맡..
[Node.js] Express 시작하기, 미들웨어와 라우터 사용법 👯‍♀️👯 MERN stack MERN stack은 javaScript 생태계에서 인기 있는 프레임워크인 MongoDB, Express, React, Node.js를 합해서 지칭하는 말이다. 이중에서 Express는 Node.js의 환경에서 웹 서버,또는 API서버를 제작하기 위해 사용되는 프레임 워크이다. 🏃🏻‍♀️ Express 시작하기 1. Express 설치 (참고 - 공식문서) npm install express 2. Express 기본골격 (참고 - 공식문서) const express = require('express') //📌 express 불러오기 const app = express() //📌 express()로 만든 서버객체를 app에 할당 const port = 3000 app.get(..
[javaScript] fs모듈로 파일 내용 수정하기 코드스테이츠 서버 스프린트를 진행하다가, 로컬 파일을 수정해야 할일이 있어서 이리저리 하다가 알게된 사실을 정리해본다. 🧐 예제로 보기 // 파일을 바꿔주기 위한 작업 시작 const path = process.cwd() + '/statesairline/repository/flightList.js' fs.readFile(path,'utf-8',function(err, data){ //flighListh.js 파일을 읽는다. //📌 콜백의 data는 파일자체가 아니라, 읽어온 파일 내용이다. if (err) throw err; //파일 읽다가 에러났을때 핸들링 const regxp = new RegExp(`${flightList}`,'gm'); const result = data.replace(regxp,..