목록분류 전체보기 (77)
걸음마부터 달리기

import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a class named "Main".//2초면 2억번... N은 100, 100* 100 0000 00 / 100만까지class Main { public static void main(String[] args) throws Exception { BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int testCase = Integer.parseInt(bf.readLine()); PriorityQueue queue = new Pri..

오피셜한 정의 및 지식이 아닙니다. 단순 개발을 위해 이해한 내용으로 작성했습니다. 훅은 기본적으로 state와 관련하여 컴포넌트의 생명주기에 맞춰 호출되는 함수이다. (하지만 내가 느끼기론 이러한 정의가 맞는지 모르겠다. useNavigate 훅 경우 컴포넌트 생명주기와 관련되어 함수가 호출된다고 하기 보다는 어떤 이벤트에 맞춰서 되는거 아닌가? 싶다.) 컴포넌트가 재렌더링 하는 과정 자체가 재렌더링을 위해 "함수형 컴포넌트", 즉 함수를 다시 호출하여 해당 HTML 태그를 반환시키는 것으로 이해했다. 즉 렌더링하는 것 자체가 컴포넌트의 함수를 호출하는 것이다. 이것이 커스텀 훅과 연관이 있다고 생각한다. 생명주기와 관련해서만 수행되는 함수인 훅이 아니라, 어떤 이벤트(생명주기 관련 + 클릭같은 이벤..

현재까지의 프로젝트 진행 흐름을 좀 봐볼려고 한다. 크게 보면 이정도 Component가 있는거같다. 빨간색 원 같은 경우는 저것도 컴포넌트로 묶어야될거 같긴 한데 지금까지는 일단 냅뒀다. inputBox 컴포넌트 부터 봐보자.import React, { ChangeEvent, Dispatch, KeyboardEvent, SetStateAction, forwardRef } from "react";import './style.css'// interface : InputBox 컴포넌트의 Propertiesinterface Props { label:string; type: 'text' | 'password'; //input type placeholder:string; value: st..

import React from 'react';import ReactDOM from 'react-dom/client';import './index.css';import App from './App';import {BrowserRouter} from "react-router-dom";const root = ReactDOM.createRoot( document.getElementById('root') as HTMLElement);root.render( {/*라우팅을 진행할 컴포넌트 상위에 BrowserRouter 컴포넌트를 생성하고 감싸주어야 한다*/} );-----------------------------------------------------------..

감도 안잡혀서 빠르게 답 봤다.처음엔 List로 대충 구현하면 될거같은데 싶었다가 시간제한 보니 자바는 2초길래 명령어 개수가 최대 500,000개이면 O(NlogN)에서 무조건 끊어야되는데 싶었다. 그럴려면 List로 하는 순간 ArrayList는 삽입하는 순간 뒷 데이터 전부 밀어야해서 O(N), LinkedList는 찾는 과정에서 O(N)이라 이것을 각각 반복하면 O(N^2) 으로 타임아웃이 불 보듯 뻔했다. 커서고 뭐고 일단 처음 들어간게 가장 먼저 나오길래 큐인가 싶었는데 그러면 커서부분을 어떻게 해야되지? 큐 중간에 넣어야하는데? 에서 문제가 발생했다. 큐 중간에 넣어버릴수가 없으니 (스택도 마찬가지고) 커서 있는걸 기준으로 서로 다르게 쪼갰어야 했다. 쪼개기만 하면 큐로는 구현이 안되고 ..

우선순위 큐만 알면 쉽게 풀리는 문제이다.그러기에 우선순위 큐를 알아보자. 일반적인 큐는 FIFO의 구조로 오로지 들어간 순서에만 영향을 받는다. 따라서 이미 들어간 순간 내가 임의로 순서 조작을 하지는 못한다. 내가 어떤 순서로 큐로 넣었던 간에 큐 내부에서 우선순위를 정하여 다시 정렬하여 그 우선순위에 맞게 큐에서 순서대로 빼는 것을 우선순위 큐라고 한다. 따라서 해당 문제는 우선순위 큐가 없었다면 매번 뺄때마다 리스트 원소를 전부 보고 작은 순서대로 빼야되기에 이미 O(N)이 걸리고 그것을 n번 해야되기에 O(N^2)이 걸려 타임아웃이다.그러면 우선순위 큐에서 우선순위를 어떻게 지정할것이냐? 우선순위 큐에서는 우선순위가 높은 것을 차례로 poll 시킨다.Comparator 를 통해서 임의적으로 순서..

누가봐도 큐 문제니까 문제 해설은 하지 않겠다. 미친척하고 깡으로 큐 구현한건 아래와 같다.import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a class named "Main".class Main { static int front=1000000; static int rear=1000001; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = ne..

import java.util.*;import java.lang.*;import java.io.*;// The main method must be in a class named "Main".class Main { static int top=-1; public static void main(String[] args) throws Exception{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); List arr = new ArrayList(); boolean flag = false; ..