목록2024/11 (15)
걸음마부터 달리기
현재까지의 프로젝트 진행 흐름을 좀 봐볼려고 한다. 크게 보면 이정도 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; ..
저번에 참고해서 푼거 복습할겸 다시 풀어봤다.3칸을 매 반복 안에서 모든 요소를 다시 확인하면 결국 O(SP) 복잡도가 되어서 시간초과가 날 것이다. 윈도우를 이동하면 항상 추가된 요소만 반영, 나가는 요소도 반영 즉 O(2)의 상수복잡도만 고려해도 되어서 O(N)에서 끝길 수 있다.import java.util.*;import java.lang.*;import java.io.*;//A C G T// The main method must be in a class named "Main".class Main { static int start=0; static int end=0; static int count=0; public static void main(String[] args) th..