1️⃣ 구성 요소react 코어컴포넌트 정의다른 패키지에 의존성 X, 다양한 플랫폼(브라우저, 모바일)에 올려서 사용 가능rendererreact-dom, react-native-renderer 호스트(브라우저 or 모바일) 렌더링 환경에 의존호스트와 react를 연결 → 즉, 웹에서는 DOM 조작reconciler 와 lagacy-events 패키지 에 의존event(legacy-event)(아래 레퍼런스 react 공식문서 링크 참고)SyntheticEvent 라는 이름의 내부적으로 개발된 이벤트 시스템기존 웹에서의 event를 wrapping 하여 추가적인 기능을 수행할 수 있게 함scheduler리액트는 Task를 비동기로 실행. 이 Task 를 실행하는 타이밍을 알고 있는 패키지ex) state..
🔥 접근직관적으로 A의 가장 수를 B의 큰 수의 인덱스에 위치시키는 방법으로 그리디 알고리즘을 적용한다결국 최솟값만 구하면 되는 문제이므로 A의 위치를 재배열해서 대응시키나, A와 B를 각각 오름차순, 내림차순으로 정렬하여 계산하나 답은 똑같이 나올 것 0~N 까지 반복문을 돌려 ASort와 BSort의 인덱스를 각각 곱하고 누적합 처리하여 답 도출🧑💻 코드const fs = require('fs');const filePath = process.platform === 'linux' ? '/dev/stdin' : 'input.txt';const input = fs.readFileSync(filePath, 'utf8').toString().trim().split('\n');const N = Numbe..
🔥 접근아래 개념에 기반하여 그리디 알고리즘을 활용하였다.로프가 들 수 있는 최대 중량은 "(가장 약한 로프의 하중) × (사용된 로프 수)" 로 결정따라서 하중이 높은 로프부터 순차적으로 선택하면서 가능한 최대 하중을 매번 계산, 그 중 가장 큰 값을 선택하는 것이 최적로프의 최대 하중을 내림차순으로 정렬한다. (무거운 걸 들 수 있는 로프부터 고려해야 함!)반복문 활용i + 1개의 로프를 사용했을 때, 가장 약한 로프는 arr[i]이 때 가능한 최대 하중은: arr[i] * (i + 1)계산된 최대 하중을 selectionArr에 pushselectionArr에서 가장 큰 값을 도출🧑💻 코드const fs = require('fs');const filePath = process.platform..
🔥 접근해당 문제는 그리디를 이용하여 아래 아이디어를 기반으로 문제를 접근하였다.가능한 한 많은 회의를 선택하려면, 빨리 끝나는 회의부터 우선 선택하는 것이 유리하다.빨리 끝나는 회의를 선택해야 그 이후에 더 많은 회의를 배치할 수 있기 때문!회의 정보를 종료 시간을 기준으로 정렬한다.종료 시간이 빠른 순서로 정렬만약 종료 시간이 같다면, 시작 시간이 빠른 순으로 정렬 (예: (1, 2) vs (2, 2) → (1, 2) 우선)정렬된 회의 리스트를 순회하면서, 이전 회의가 끝난 시간 이후에 시작되는 회의를 선택합니다.🧑💻 코드const fs = require('fs');const filePath = process.platform === 'linux' ? '/dev/stdin' : 'input.tx..
🔥 접근그리디 알고리즘을 사용하여 접근(현재 상황에서 가장 최적인 선택) → 가장 액수가 큰 동전부터 많이 사용하는 것COINS 배열을 뒤에서부터 순회하여 K에 대해 나눠준다. (큰 값 부터 적용) 이때 나눠져서 나온 값을 count 에 더해준다.2번과정에서 나누어진다면 K 값에서 시작한 amount 를 줄여나가며 다음 순회시에 적절한 count 가 더해지도록 한다.🚨 주의할 점 🚨만약 동전이 배수가 아닌, 1, 9, 10 과 같이 구성되어있다면 18을 구할때그리디 알고리즘을 사용한다면 값이 틀리게 됨!따라서 이와같은 경우에는 다이나믹 프로그래밍(DP) 방식을 사용해야 함(큰 문제를 작은 문제로 나누어서 해결하는 방법, 필요할 때 다시 계산하지 않고 재활용하는 방식 === memoization)🧑..
🔥 접근slice 를 이용해 각 테스트케이스를 나눈 후에 그래프를 만든다.간선이 한개 + 단방향으로 이루어진 그래프이므로 큐를 만들지 않고 visited 로만 방문을 했는지 판단 가능하다고 생각모든 정점을 한번씩은 다 방문해야하므로 for문으로 모든 정점을 돌되, 이미 방문했던 곳은 return그래프에서 한 싸이클을 찾기 위해서 path 배열을 두고, 마지막으로 방문한 정점에서 다음 노드가 path 에 있는지 indexOf 를 이용하여 판단이때 path 내부에 해당 노드가 존재한다면(-1이 아닐때) 해당 인덱스부터 path의 마지막 요소까지 한 싸이클이 완성 된 것!-1 이라면 한 싸이클이 만들어지지 않았기때문에 count를 올리지 않음전체 학생 수 - count 를 하여 답을 도출🧑💻 코드con..