STUDY 89

[프로그래머스_ 자바스크립트] Lv.2 이모티콘 할인행사 / 완전 탐색, DFS

[Javascript_ 이모티콘 할인행사] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📢 문제 📢 카카오톡에서는 이모티콘을 무제한으로 사용할 수 있는 이모티콘 플러스 서비스 가입자 수를 늘리려고 합니다. 이를 위해 카카오톡에서는 이모티콘 할인 행사를 하는데, 목표는 다음과 같습니다. 이모티콘 플러스 서비스 가입자를 최대한 늘리는 것. 이모티콘 판매액을 최대한 늘리는 것. 1번 목표가 우선이며, 2번 목표가 그 다음입니다. 이모티콘 할인 행사는 다음과 같은 방식으로 진행됩니다. n명의 카카오톡 사용자들에게 이모티콘 m개를 할인하여 판매합니다. 이모티콘마..

STUDY/Algorithm 2023.04.13

연결 리스트 (Linked List) / 단일 연결 리스트, 이중 연결 리스트

[연결 리스트] 연결 리스트 (Linked List) 데이터를 저장하는 자료 구조 순서에 따라 다수의 데이터 저장 다음 데이터 요소를 가리키는 인덱스 없이 구성 (객체들이 연속으로 연결) 인덱스 X → 직접접근 불가, 연속적으로 접근 가능 다수의 노드로 구성 (노드 : 하나의 데이터 요소 저장) ⇒ 다음 노드를 가리키는 정보를 저장하고 있어야함 (없는 경우 null) # 속성 헤드 (Head) : 시작 노드 테일 (Tail) : 마지막 노드 길이 (Length) : 리스트의 길이 class Node { constructor(val) { this.val = val; this.next = null; this.prev = null; } } 연결 리스트 vs 배열 연결 리스트 배열 인덱스 X, 헤드 / 테일 존..

STUDY/Algorithm 2023.04.10

정렬 알고리즘 (Sorting Algorithm) / 버블 정렬, 선택 정렬, 삽입 정렬, 합병 정렬, 퀵 정렬, 기수 정렬

[정렬 알고리즘] 정렬 알고리즘 (Sorting Algorithm) 항목을 재배열 하는 과정 일반적으로 배열을 사용 트리 등의 데이터 구조의 정렬 # 기본적인 정렬 알고리즘 버블 정렬 (Bubble Sort) 선택 정렬 (Selection Sort) 삽입 정렬 (Insertion Sort) # JS 내장 정렬 메소드 console.log([23, 45, 6, 12, 13].sort()) // 예상 : [6, 12, 13, 23, 45] // 결과 : [12, 13, 23, 45, 6] ❓예상 출력값과 결과값이 다른 이유 자바스크립트에 내장된 정렬 메소드(sort)의 기본 정렬 순서는 문자열 유니코드의 코드 포인트에 따르기 때문 속성, 비교 대상을 실제로 지정하여 원하는 방식으로 정렬 가능 예시1 - 숫자..

STUDY/Algorithm 2023.04.07

탐색 알고리즘 (Search Algorithm) / 선형 탐색, 이진 탐색

[탐색 알고리즘] 선형 탐색 (Linear Searching) 특정 값이 배열 안에 포함되어 있는지 순서대로 살펴보는 방법 Big O : O(n) indexOf Includes find findIndex 메소드 💡 배열 안의 target 위치를 반환하는 함수 (값이 없는 경우 -1 반환) function linearSearch(arr, target) { for (let i = 0; i < arr.length; i++) { if (target === arr[i]) return i; } return -1; } Big O Best : O(1) Average : O(n) Worst : O(n) 이진 탐색 (Binary Search) 범위를 정해서 그 안에서만 탐색하는 방법 데이터가 정렬되어 있어야 함 분할 정복..

STUDY/Algorithm 2023.04.02

재귀함수 (Recursion Function) / JS

[재귀함수] 재귀 함수에 대하여 알아보자! 재귀 함수 (Recursion Function) 자기 자신을 호출하는 함수 함수 내부에서 자기 자신을 호출함 💡 재귀 사용 이유 모든 곳에서 사용되기 때문! ❓재귀 함수가 자기 자신을 계속 호출한다면? 함수 호출시 호출 스택 위에 함수가 쌓임 반환 키워드를 확인하거나, 함수 안에 더이상 실행할 코드가 없는 경우 컴파일러가 호출 스택 가장 위에 있는 항목을 제거함 💡 호출 스택 함수가 올바른 순서대로 실행되도록 하는 자바스크립트의 정적 데이터 구조 (보이지 않는 곳에서 작동함!) 예시 function takeShower() { return "Showering!" } function eatBreakfast() { let meal = cookFood(); return..

STUDY/Algorithm 2023.04.01

[프로그래머스_자바스크립트] Lv.2 당구 연습 / math, 좌표 이동, 대칭

[Javascript_ 당구 연습] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📢 문제 📢 최근 취미로 알고리즘 문제를 풀기 시작한 당신은, 머쓱이가 친 공이 각각의 목표로한 공에 맞을 때까지 최소 얼마의 거리를 굴러가야 하는지가 궁금해졌습니다. 당구대의 가로 길이 m, 세로 길이 n과 머쓱이가 쳐야 하는 공이 놓인 위치 좌표를 나타내는 두 정수 startX, startY, 그리고 매 회마다 목표로 해야하는 공들의 위치 좌표를 나타내는 정수 쌍들이 들어있는 2차원 정수배열 balls가 주어집니다. "원쿠션" (당구에서 공을 쳐서 벽에 맞히는 걸 쿠션이..

STUDY/Algorithm 2023.03.21

[리액트] react-router v6 경로 설정하기 / createBrowserRouter, Outlet

[React_ react-router] 리액트 프로젝트를 진행하면서 react-router v6을 사용하게 되었다. 헤더, 푸터 등 공통적으로 사용되는 컴포넌트의 중복을 줄이기 위해 createBrowserRouter와 Outlet을 사용하였다. ❔ index.tsx, router.tsx, App.tsx 파일 - router 설정 // index.tsx import React from "react"; import ReactDOM from "react-dom/client"; import { BrowserRouter } from "react-router-dom"; import App from "./App"; const root = ReactDOM.createRoot( document.getElementByI..

[운영체제] 운영체제와 컴퓨터

이화여자대학교 반효경 교수님의 운영체제 강의를 참고하였습니다. 운영체제 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 SW와 HW를 연결하는 소프트웨어 계층 좁은 의미의 운영체제 (커널) : 운영체제의 핵심 부분, 메모리에 상주 넓은 의미의 운영체제 : 커널을 포함하여 각종 주변 시스템 유틸리티를 포함한 개념 # 분류 동시 작업 가능 여부 : 단일 작업, 다중 작업 사용자 수 : 단일 사용자, 다중 사용자 처리 방식 : 일괄 처리, 시분할, 실시간 💡 시분할 (time sharing) 컴퓨터 처리 능력을 일정한 시간 단위로 분할 💡 실시간 (realtime) Deadline이 존재하여 정해진 시간 내에 반드시 종료되어야 함 ⇒ Hard realtime system, Soft realtime s..

STUDY/CS 2023.02.04

[Next.js] 개발 서버 브라우저 자동으로 열기 / next dev

[Next_ next dev] 드디어 Next js 공부를 시작했는데 npm run dev (next dev)를 실행하니 브라우저가 자동으로 열리지 않았다. 그래서 package.json을 위 사진처럼 수정했는데도 안열렸다. ❗ 해결 open-browser (start http://localhost:3000)를 따로 만들고 dev에서 실행되도록 하면 자동으로 브라우저가 열리는 것을 알 수 있다! 🔆내가 보려고 정리하는 Next.js🔆 👉ez1n github 구경하기👈 ez1n - Overview Front-End Developer. ez1n has 16 repositories available. Follow their code on GitHub. github.com

STUDY/Next js 2023.02.03

[프로그래머스_자바스크립트] Lv.1 포켓몬 / 해시 (Hash)

[Javascript_ 포켓몬] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📢 문제 📢 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.홍 박사님 연구실의 폰켓몬은 종류에 따라 번호를 붙여 구분합니다. 따라서 같은 종류의 폰켓몬은 같은 번호를 가지고 있습니다. 당신은 최대한 다양한 종류의 폰켓몬을 가지길 원하기 때문에, 최대한 많은 종류의 폰켓몬을 포함해서 N/2마리를 선택하려 합니다. N마리 폰켓몬의 종류 번호..

STUDY/Algorithm 2023.01.26