문제큰 방에 N개의 풍선이 떠있다. 풍선들은 왼쪽부터 오른쪽까지 일렬로 있다. 진솔이는 화살 가지고 노는 것과 사냥 연습하는 것을 좋아한다. 진솔이는 화살을 왼쪽에서 오른쪽으로 쏜다. 높이는 임의로 선택한다. 화살은 선택된 높이 H에서 풍선을 마주칠 때까지 왼쪽에서 오른쪽으로 이동한다. 화살이 풍선을 마주치는 순간, 풍선은 터지고 사라진다. 화살은 계속해서 가던길을 가는데 높이는 1 줄어든다. 그러므로 만약 화살이 높이 H에서 이동 중이었다면 풍선을 터트린 후에는 높이가 H-1이 된다.우리의 목표는 모든 풍선을 터트리되 가능한한 적은 화살을 사용하는 것이다.입력첫 번째 줄에는 정수 N(1 ≤ N ≤ 1 000 000)이 들어온다.두 번째 줄에는 배열 Hi가 N개 들어온다.각각의 Hi(1 ≤ Hi ≤ 1 ..
문제 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 K개 이하로 들어 있는 최장 연속 부분 수열의 길이를 구하려고 한다. 100000$100\,000$ 이하의 양의 정수로 이루어진 길이가 N인 수열이 주어진다. 이 수열에서 같은 정수를 K개 이하로 포함한 최장 연속 부분 수열의 길이를 구하는 프로그램을 작성해보자. 입력 첫째 줄에 정수 N (1 ≤ N ≤200000)과 K (1≤ K ≤ 100)가 주어진다. 둘째 줄에는 a1,a2,a3,...,an이 주어진다 (1≤ ai ≤100000) 출력 조건을 만족하는 최장 연속 부분 수열의 길이를 출력한다. 접근 방식 투 포인터를 사용해 숫자의 빈도수를 확인해야 한다...
문제 A[1], A[2], ..., A[N]의 N개의 정수가 저장되어 있는 배열이 있다. 이 배열 A의 부분합이란 1 ≤ i ≤ j ≤ N인 정수 i와 j에 대해 A[i]부터 A[j]까지의 합을 말한다. N과 A[1], A[2], ..., A[N]이 주어졌을 때, 이러한 N×(N+1)/2개의 부분합 중 합이 K인 것이 몇 개나 있는지를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N과 K가 주어진다. (1 ≤ N ≤ 200,000, |K| ≤ 2,000,000,000) N과 K 사이에는 빈칸이 하나 있다. 둘째 줄에는 배열 A를 이루는 N개의 정수가 빈 칸을 사이에 두고 A[1], A[2], ..., A[N]의 순서로 주어진다. 주어지는 정수의 절댓값은 10,000을 넘지 않는다. 출력 첫째 줄에..
안녕하세요 오늘은 React + TypeScript 환경에서 Kakao Map API 연동하는 방법에 대해서 설명해드리겠습니다. 1. Kakao Map API Key 발급하기 아래 사이트에서 애플리케이션 추가하기 버튼을 클릭해 추가한 뒤 API key를 발급받습니다 https://apis.map.kakao.com/web/ 그럼 다음과 같이 발급받은 앱 키 중에 Javascript 키를 선택합니다. 2. .env 파일에 키 추가하기 REACT_APP_KAKAO_API_KEY = 발급받은 키 이런식으로 .env 파일에 발급받은 키를 넣어줍니다. 3. 지도를 담을 파일 생성하기 저는 KakaoMap.tsx 파일을 추가해주었습니다. import React, { useEffect } from 'react' imp..
💡 결론 : React에서 key를 사용하여 엘리먼트 혹은 컴포넌트의 변화를 감지해 효율적인 DOM 사용을 위해서 1. 자식에 대한 재귀적 처리 DOM 노드의 자식들을 재귀적으로 처리할 때, React는 기본적으로 동시에 두 리스트를 순회하고 차이점이 있으면 변경을 생성한다. Duke Villanova // 변경 Connecticut // 자식요소 추가 Duke Villanova 위와 같은 경우 React는 Duke와 Villanova 종속 트리를 그대로 유지하는 대신 모든 자식을 변경 (다시 렌더링)한다. React 입장에서 컴포넌트를 반복해서 렌더링 하는 일은 매우 비효율적임! Keys 자식들이 key를 가지고 있다면, React는 key를 통해 기존 트리와 이후 트리의 자식들이 일치하는지 캐치할 수..