분류 전체보기 183

javascript 코딩테스트 - 요격 시스템

A 나라가 B 나라를 침공하였습니다. B 나라의 대부분의 전략 자원은 아이기스 군사 기지에 집중되어 있기 때문에 A 나라는 B 나라의 아이기스 군사 기지에 융단폭격을 가했습니다. A 나라의 공격에 대항하여 아이기스 군사 기지에서는 무수히 쏟아지는 폭격 미사일들을 요격하려고 합니다. 이곳에는 백발백중을 자랑하는 요격 시스템이 있지만 운용 비용이 상당하기 때문에 미사일을 최소로 사용해서 모든 폭격 미사일을 요격하려 합니다. A 나라와 B 나라가 싸우고 있는 이 세계는 2 차원 공간으로 이루어져 있습니다. A 나라가 발사한 폭격 미사일은 x 축에 평행한 직선 형태의 모양이며 개구간을 나타내는 정수 쌍 (s, e) 형태로 표현됩니다. B 나라는 특정 x 좌표에서 y 축에 수평이 되도록 미사일을 발사하며, 발사된..

javascript 코딩테스트 - 바탕화면 정리

문제 설명 코딩테스트를 준비하는 머쓱이는 프로그래머스에서 문제를 풀고 나중에 다시 코드를 보면서 공부하려고 작성한 코드를 컴퓨터 바탕화면에 아무 위치에나 저장해 둡니다. 저장한 코드가 많아지면서 머쓱이는 본인의 컴퓨터 바탕화면이 너무 지저분하다고 생각했습니다. 프로그래머스에서 작성했던 코드는 그 문제에 가서 다시 볼 수 있기 때문에 저장해 둔 파일들을 전부 삭제하기로 했습니다. 컴퓨터 바탕화면은 각 칸이 정사각형인 격자판입니다. 이때 컴퓨터 바탕화면의 상태를 나타낸 문자열 배열 wallpaper가 주어집니다. 파일들은 바탕화면의 격자칸에 위치하고 바탕화면의 격자점들은 바탕화면의 가장 왼쪽 위를 (0, 0)으로 시작해 (세로 좌표, 가로 좌표)로 표현합니다. 빈칸은 ".", 파일이 있는 칸은 "#"의 값을..

javascript 코딩테스트 - 선택 정렬(selection sort)

저번에 살펴본 버블 정렬 bubble sort가 최댓값을 맨 뒤에 확정지을 때까지 스왑을 하는 거였다면 선택 정렬 selection sort는 최솟값을 맨 앞에 확정 짓는 것을 반복하는 것이다. 마찬가지로 순서대로 원리를 살펴보자. 1. 배열을 돌면서 최솟값을 찾는다. 2. 최솟값을 찾은 후에 그 원소와 배열의 맨 앞 원소의 위치를 바꿔준다. 3. 그러면 확정된 최솟값을 제외한 나머지 원소들에 대해 똑같은 과정을 반복한다. 예를 들어 [5, 3, 4, 1, 2]가 있다고 해보자. 그러면 처음에 5만 살펴보면 최솟값은 5로 설정된다. (최솟값 = 5) 그 다음 3을 살펴보면 5보다 작기 때문에 최솟값은 3으로 업데이트 된다. (최솟값 = 3) 그 다음 4를 살펴보면 3보다 크기 때문에 최솟값은 바뀌지 않는..

React 드롭다운 blur 이벤트 click 이벤트 올바르게 처리하기

import React, { useState } from "react"; import Arrow from "../icon/dropdown-arrow"; type DropdownItem = { name: string; id: string; }; type DropdownProps = { items: DropdownItem[]; }; function DropDown({ items }: DropdownProps) { const [isDropdownOpen, setIsDropdownOpen] = useState(false); const [selectedItem, setSelectedItem] = useState("선택"); return ( { setIsDropdownOpen(false); }} > { setIsD..

웹/React 2023.08.11

javascript 코딩테스트 - 버블 정렬 bubble sort

정렬은 코딩테스트나 알고리즘에서 많이 등장하는 주제 중 하나이다. 정렬 알고리즘은 위키피디아에 검색해보면 정말 많이 등장한다. https://en.wikipedia.org/wiki/Sorting_algorithm#Memory_usage_patterns_and_index_sorting Sorting algorithm - Wikipedia From Wikipedia, the free encyclopedia Algorithm that arranges lists in order In computer science, a sorting algorithm is an algorithm that puts elements of a list into an order. The most frequently used orders..

React 드롭다운 메뉴 혼자서 만들어보기 - 라이브러리 X

동아리에서 진행하는 프로젝트 중 드롭다운을 만들어야했는데 드롭다운 하나를 위해서 디자인 라이브러리를 받는 건 프로젝트의 용량으로 보나 여러모로 너무 낭비라고 판단하여 직접 구현하기로 했다. 먼저 구현된 결과물부터 바로 보고 어떻게 구현했는지 분석해보자. const [activeIdx, setActiveIdx] = useState(); {adminMenu.map((menu, index) => { const active = activeIdx === index + 1 ? true : false; return ( ); })} // AdminMenu 컴포넌트 const AdminMenu = ({ menuItem, idx, activeIdx, active, setActiveIdx, subMenu }) => { re..

웹/React 2023.08.07

javascript 코딩테스트 - 검색 알고리즘

검색은 말 그대로 간단하다. 어떤 배열안에 해당하는 데이터가 있는지 없는지 확인하기 위한 알고리즘이다. 1. 선형 검색 알고리즘 (linear search) 검색을 하기 위한 가장 단순한 사고방식의 알고리즘이라고 생각하면 된다. 만약 전체의 집합이 있고 찾고자하는 값이 있다면 전체 집합을 전부 다 살펴보면 된다. Write a function called linearSearch which accepts an array and a value, and returns the index at which the value exists. If the value does not exist in the array, return -1. linearSearch([10, 15, 20, 25, 30], 15) // 1 lin..

javascript 코딩테스트 - 슬라이딩 윈도우

슬라이딩 윈도우는 창문이 있을 때 그 너비나 높이에 따라서 보이는 부분이 다르고, 또 창문을 옆으로 이동시키면서 자료구조를 다루는 알고리즘이다. 문제1 Given an array of integers and a number, write a function called maxSubarraySum, which finds the maximum sum of a subarray with the length of the number passed to the function. Note that a subarray must consist of consecutive elements from the original array. In the first example below, [100, 200, 300] is a suba..

javascript 코딩테스트 - 다중 포인터

다중 포인터는 문자열, 배열 등과 같이 인덱스가 있는 자료구조에서 포인터를 여러개 두어 비교, 연산 등의 알고리즘을 수행하게 된다. 문제1 Write a function called averagePair. Given a sorted array of integers and a target average, determine if there is a pair of values in the array where the average of the pair equals the target average. There may be more than one pair that matches the average target. averagePair([1,2,3],2.5) // true averagePair([1,3,3,5,..

자바스크립트 딥 다이트 스터디 6장 - 데이터 타입

데이터 타입 data type은 값의 종류를 말한다. 자바스크립트에는 총 7개의 데이터 타입이 있다. 먼저 크게 원시 타입과 객체 타입으로 구분된다. 원시타입 숫자 타입 number 숫자, 정수와 실수 구분 없음 문자열 타입 string 문자열 불리언 타입 boolean 논리적 참 true와 거짓 false undefined 타입 var 키워드로 선언된 변수에 암묵적으로 할당되는 값 null 타입 값이 없다는 것을 의도적으로 명시할 때 사용 심벌 타입 symbol ES6에서 추가된 7번째 타입 객체 타입 객체, 함수, 배열 등 1과 '1'은 값은 비슷해보이지만 전혀 다르다. 숫자 타입과 문자열 타입은 값을 생성한 목적과 용도가 다르다. 숫자 타입은 주로 산술 연산을 위해 생성하지만 문자열 타입은 주로 텍..

웹/Javascript 2023.07.13
728x90