전체 글 113

탐색 알고리즘 (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

[프로그래머스_자바스크립트] Lv.1 숫자 짝꿍 / 해시 알고리즘

[Javascript_ 숫자 짝꿍] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📢 문제 📢 두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다. 두 정수 X, Y가 주어졌을 때, X, Y의 짝꿍을 return하는 solution 함수를 완성해주세요. 제한사항 3 ≤ ..

STUDY/Algorithm 2023.01.23

[네트워크] IP 주소 / IPv4, IPv6, 클래스 기반 할당 방식

IP 주소 체계 1. IPv4 시스템에서 네트워크 인터페이스를 고유하게 식별하는 32비트 길이의 번호 32비트를 8비트 단위로 점을 찍어 표기 주소 길이 : 32비트 데이터가 정확하게 전달되는 것을 보장하지 않고, 중복된 패킷을 전달하거나 패킷의순서를 잘못 전달할 가능성이 있다. 클래스 기반 할당 방식 * ## 클래스 기반 할당 방식 IPv4에서 아이피 주소를 할당하는 방식 (서브네팅) 클래스 : 하나의 IP 주소에서 네트워크 영역과 호스트 영역을 나누는 방법 A, B, C, D, E 다섯 개의 클래스로 구분 네트워크 주소 (앞부분) + 호스트 주소 (뒷부분) 클래스 A, B, C : 일대일 통신 클래스 D : 멀티캐스트 통신 클래스 E : 예비용 / 연구용 💡 예시 10.3.4.3 ⇒ 클래스 A, 네트..

STUDY/CS 2023.01.22

[프로그래머스_자바스크립트] Lv.1 햄버거 만들기

[Javascript_ 햄버거 만들기] 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 📢 문제 📢 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓이게 되고, 상수는 순서에 맞게 쌓여서 완성된 햄버거를 따로 옮겨 포장을 하게 됩니다. 상수가 일하는 가게는 정해진 순서(아래서부터, 빵 – 야채 – 고기 - 빵)로 쌓인 햄버거만 포장을 합니다. 상수는 손이 굉장히 빠르기 때문에 상수가 포장하는 동안 속 재료가 추가적으로 들어오는 ..

STUDY/Algorithm 2023.01.22