분류 전체보기
[ 백준 1931 ] ( python ) 회의실 배정
📚 회의실 배정 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력 첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다. 시작 시간과 끝나는 시간은 2..
(JavaScript) 자바스크립트 async / await / promise
0. 동기? 비동기? 자바스크립트에서 쓰는 일반적인 함수는 동기적으로 기능한다. 하지만 가끔은 비동기적으로 써야 할 때가 있다. 동기와 비동기는 어떤 차이가 있을까? 동기 한번에 한 작업만 수행할 수 있다 흐름을 예측하기 쉽다 (호출 순서대로 작동한다) 비동기 동시에 여러 작업을 수행할 수 있다 흐름을 예측하기 어렵다 (무엇이 먼저 완료될 지 보장이 불가능하다) ✍ 비동기 setTimeout의 동작 또한 비동기로 동작한다고 볼 수 있다. 함수를 호출하고, 설정 시간 동안 기다리는 시간은 다른 흐름에 영향을 주지 않기 때문이다 만약 console.log('사과')를 하는 함수의 설정 시간을 3초로 잡고, console.log('옥수수')를 하는 함수의 설정 시간을 1초로 잡은 후 사과를 찍는 함수 호출 옥..
함수형 컴포넌트로 ref 보내기 | forwardRef에 대해 알아보자
과제테스트 중 forwardRef라는 것을 발견하고(시험 내용 아님!! 그냥 코드에 적혀진걸보고 궁금해서 공부함!!) 이게 뭐지..? 하면서 알아보았다 ✍ forwardRef 함수 컴포넌트가 있다. 이 안에 있는 input에 포커스를 맞추기 위해서 우리는 useRef을 종종 사용한다. 하지만 일반적인 input이 아니라, Input Component라면? 이 때도 useRef을 사용해서 포커스를 줄 수 있을까? 정답은 불가능. 함수 컴포넌트는 ref를 받을 수 없다. = props.ref는 사용이 불가능하다. 이유가 뭘까 ❓ => 함수 컴포넌트는 인스턴스가 없기 때문에 => 따라서, forwrdRef가 필요하다 언제? React.forwardRef는 전달받은 ref을 하부 트리 내의 다른 컴포넌트로 전달..
[ 🐱💻 강의 노트 ] React 완벽 가이드 강의 정리 섹션 10 | 리듀서(Reducer)을 사용하여 부작용 처리 & 컨텍스트 API(Context) 사용하기
useEffect cleanup 함수 관련 지식이 모자람을 느끼고 들은 섹션 ✍ Effects, Reducers & Context 📌 Effect, Side Effect 리액트 라이브러리는 UI를 렌더링하는 임무가 있다. 사용자가 무엇인가와 상호작용하게 하는 것. Side Effects는 앱에서 일어나는 다른 모든 것을 뜻함 http request rocal storage 저장 이것들은 모두 애플리케이션에서 고려해야 한다. 그러나 이러한 작업들은 화면에 무언가를 가져오는것과는 직접적인 관련은 없다. 따라서 이것들은 일반적인 컴포넌트 함수 밖에서 일어나야 한다. 예를 들어 http request를 컴포넌트 안에서 시행하면 state가 변경될 때마다 계속 받아오게 된다. 무한 루프로 빠질 수도 있음. 따라서..
이벤트 제어하기. 쓰로틀링(throttling)과 디바운싱(debouncing)
✍ 쓰로틀링과 디바운싱 개념 : 디바운싱과 쓰로틀링은 자주 사용되는 이벤트나 함수의 빈도를 줄여 성능상 유리함을 가져오기 위한 개념이다. 📌 디바운싱 연속으로 호출되는 함수(이벤트)에서 가장 마지막(혹은 처음) 이벤트만 실행되도록 한다. == 입력(이벤트)가 끝난 후에 요청을 보내면 된다. 검색 시 많이 사용 이벤트 발생 시점 입력이 끝날 때까지 무한정 대기 이벤트 발생 시(ex onChange) 타이머를 설정해두고, 200ms(설정 시간) 이전에 타자 입력(이벤트)가 발생하면 이전 타이머는 클리어, 새로운 타이머를 설정해준다. 설정 시간 이전에 이벤트가 발생하지 않으면 이벤트 발생 끝 => 코드가 실행된다. 📌 쓰로틀링 연속으로 호출되는 함수(이벤트)를 일정 시간 동안에 한번씩만 실행되도록 한다. ==..
[ 백준 12865 ] ( python ) 평범한 배낭
📚 평범한 배낭 문제 이 문제는 아주 평범한 배낭에 관한 문제이다. 한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다. 준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물건을 배낭에 넣어서 가면 준서가 V만큼 즐길 수 있다. 아직 행군을 해본 적이 없는 준서는 최대 K만큼의 무게만을 넣을 수 있는 배낭만 들고 다닐 수 있다. 준서가 최대한 즐거운 여행을 하기 위해 배낭에 넣을 수 있는 물건들의 가치의 최댓값을 알려주자. 입력 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 1..
[ 백준 10844 ] ( python ) 쉬운 계단 수
📚 쉬운 계단 수 문제 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단수가 아니다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. 예제 입력 1 복사 1 예제 출력 1 복사 9 예제 입력 2 복사 2 예제 출력 2 복사 17 ✍ 접근 규칙찾기! 2차원 배열을 돌면서 0~9가 마지막 숫자로 올 수 있는 개수를 세어준다 board를 그려서 해결하면 더 간단하다 정답코드 # ✨ 입력 import sys input = sys.stdin.re..
JavaScript 자바스크립트 이벤트 리스너(eventListener)
나.. 이벤트리스너 모르네 ✍ addEventListener EventTarget 인터페이스의 메서드. 지정한 유형의 이벤트를 수신할 때마다 호출할 함수를 설정한다. = 호출 시 인자를 전달받는다. 일반적인 대상 Element, Document, Window지만 XMLHttpRequest 같이 이벤트를 지원하는 모든 객체가 대상이 될 수도 있다. target.addEventListener('click', function(){}) 이벤트명을 나타낸 문자열 함수 (콜백함수) 옵션 ( capture, once, passive, signal ... ) 기존 이벤트 핸들러 (onclick)등을 사용하는 것에 비해 addEventListener을 사용하면 이전에 추가한 이벤트 핸들러를 제거할 수 있응 대응 메소드 ..