본문 바로가기

분류 전체보기

(341)
React) Ref란? Ref What is Ref ? HTML에서는 DOM 마다 id로 이름을 달 수 있습니다. 리액트는 id 대신 reference의 줄임말인, ref로 이름을 달 수 있습니다. id는 unique해야 하는데 리액트에서는 컴포넌트 재사용이 많은데 이런 상황에서 id가 중복이 발생하기 때문에 리액트에서도 id를 사용할 수 있지만 사용을 권장하지는 않고 있습니다. 특수한 경우, id를 사용해야 한다면 id 뒷 부분에 추가 텍스트를 붙여 (btn 1, btn2,...) 중복 id 발생을 방지해야 합니다. When to use ref는 DOM을 직접 건드려야 할 때 사용하는 것입니다. 예를 들어 특정 input에 focus 주기 스크롤 박스 조작하기 canvas 요소에 그림 그리기 등 의 작업을 할 때에는 DOM에..
React) 간단한 비밀번호 검증 예제 Password Validation Password Validation source code /* validation.css */ .success{ background-color: lightgreen; } .failure{ background-color: lightcoral; } import React, { useState } from 'react'; import './validation.css'; const staticPassword = '0000'; const Validation = () => { const [password, setPassword] = useState(''); const [clicked, setClicked] = useState(false); const [validated, setValidated] = useState..
React) onKeyPress와 input 여러개 일 때onChange 이벤트 핸들링 onKeyPress and onChange with multiple input Event Handling source code import React, { useState } from 'react'; const EventHandling = () => { const [form, setForm] = useState({ username:'', message:'' }) const { username, message } = form; const handleChange = e => { const newForm = { ...form, // 기존의 form을 이 자리에 복사 [e.target.name] : e.target.value }; setForm(newForm); } const handleClick = () =>..
React) input onChange, button onClick 이벤트 핸들링 input onChange, button onClick Event Handling source code import React, { useState } from 'react'; const EventHandling = () => { const [message, setMessage] = useState(''); return ( Event Practice { setMessage(e.target.value) } } /> { alert(message); setMessage(''); } }>확인 ); } export default EventHandling; result npm start로 위 프론트엔드 코드를 브라우저에 띄우면 다음과 같은 화면이 보입니다. input 칸에 사용자가 텍스트를 입력하면 그 값이 val..
위상 정렬 Topology Sort 위상 정렬 Topology Sort 태스크 수행 순서를 찾는 알고리즘 방향 그래프에 존재하는 각 정점의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것 Directed Acyclic Graph에만 적용 가능 (사이클이 발생하지 않는 방향 그래프) 하나의 그래프에서 여러 개의 위상정렬이 도출될 수 있다. 위상정렬의 시작점이 있어야 한다. 그래프에 남아 있는 정점 중 진입차수가 0 인 정점(해당 정점으로 들어오는 간선이 없는 경우)이 없다면 위상정렬 알고리즘 종료 example 진입 차수가 0 인 정점 (들어오는 간선의 수가 0, 위상 정렬의 시작점이 될 수 있는 정점)을 선택 → 여러 개인 경우 아무거나 선택 → 초기에 진입 간선의 수가 0 인 모든 정점을 큐에 삽입 : (0) (1) 선택된 정점과..
네트워크 플로우 Network Flow, 에드몬드-카프 Edmonds-Karp, 포드 풀커슨 Ford-Fulkerson 알고리즘 네트워크 플로우 Network Flow 특정 지점에서 다른 지점으로 데이터가 얼마나 많이 흐르고 있는지 측정하는 알고리즘 ⇒ 최대 유량 max flow 문제 해결에 사용되는 알고리즘 example A→D의 최대 유량은 6, 6 이상을 보내면 정체 현상이 발생하기 때문이다. 각 경로의 용량 중 가장 작은 것이 최대 유량 Terminologies flow: 두 정점 사이에서 현재 흐르는 양 capacity: 두 정점 사이에서 최대로 흐를 수 있는 양 source: 유량이 시작되는 정점 sink: 유량이 도착하는 정점 augumenting path: 소스에서 싱크로 유량을 보내는 경로 residual capacity: 용량 - 유량 Properties 용량 < 유량 (capacity < flow) flow(m..
최단 경로 찾기 Shortest path, 변 경감 edge relaxation, 벨만-포드 Bellam-Ford's, 다익스트리 Dijikstra's 알고리즘 최단 경로 찾기 Shortest Path 두 노드를 잇는 가장 짧은 경로 찾기 weighted graph에서 엣지 가중치의 합이 최소가 되는 경로 찾기 problems single source 단일 노드에서 출발하여 그래프 내의 모든 다른 노드에 도착하는 가장 짧은 경로 찾는 문제 single destination 모든 노드에서 출발하여 그래프 내의 한 단일 노드로 도착하는 가장 짧은 경로를 찾는 문제 single pair 주어진 꼭지점u, v 사이의 최단 경로 찾는 문제 all pair 그래프 내의 모든 노드 쌍 사이의 최단 경로 찾는 문제 Floyd-Warshall algorithm all-pair 최단 경로 문제 알고리즘 optimal substructure 활용 optimal substructur..
최소 신장 트리 Minimum Spanning Tree, 크루스칼 Kruskal's, 프림 Prim's 알고리즘 Greedy Algorithm 각 단계에서의 최선책을 선택하여 다음 단계로 진행하는 알고리즘 현재 선택에 의해 다음 단계의 조건이 변하는 경우 부적합 최소 신장 트리 MST 모든 노드를 포함하는 그래프, 모든 노드가 연결된 그래프, 트리 속성을 만족하는 그래프 그래프 상에서 각 간선에 가중치가 부여됨 한 정점을 기준으로 가능한 가장 작은 가중치의 간선들을 사용하여 모든 정점을 연결하는 트리(MST) MST를 구하는 문제를 푸는 알고리즘 크루스칼 가장 작은 값의 간선을 선택한다. → 그 다음 작은 값의 간선을 선택한다. → 그 다음으로 작은 값의 간선을 선택하되 사이클이 생기지 않게 선택한다. → 모든 정점을 선택할 때까지 위 선택 과정을 반복한다. 프림 알고리즘 기준 정점에서 출발하는 가장 작은 값은 간..