분류 전체보기 396

2-01 : Structure

단 하나의 맥락 : 공간 분별하고, 필요에 맞게끔 파일 작성 및 실행 - semiflow bundle : src/main/java : SbbApplication.java - 상세 내용 메인 디렉토리 폴더 및 파일 기능 src/main/java 메인 자바 파일 Controller, Service, Repository, Entitiy Form SbbApplication.java 스프링부트 시작을 담당하는 파일 @SpringbootApplication 적용됨 src/main/resources (HTML, CSS, Javascript, 환경 파일) template html 형태로 자바 객체와 연동 static .css / .js / .jpg 등 application.properties 프로젝트 환경 DB 등의 ..

1-05 : Devtools, Lombok

단 하나의 맥락 : gradle 내 dependencies에 플러그인을 추가함으로써, 개발 편의 기능 추가 : 업데이트 시 서버 자동 재시작, 롬복 @로 자동 DI semiflow bundle : devtools 설치 : lombok 설치 : lombok 생성자 등 사용하여 잘 설치되었나 확인 devtools설치 위치 : build.gradle dependencies에 설치 코드 추가 developmentOnly 'org.springframework.boot:spring-boot-devtools' build.gradle 새로고침 옵션 > Gradle > Refresh Gradle Project lombok 설치 위치 : build.gradle https://projectlombok.org/download..

1-04 : local server의 실행과 controller

단 하나의 맥락 : 웹에서 프로젝트 실행 semiflow bundle - contollrer 만들기 - localhost:8080/~ 실행 - 확인 Contorller 위치 : src/main/java > "com.mysite.sbb" @Controller target URL method와 return되는 것 @RequestMapping (@Requestbody) package com.mysite.sbb; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseB..

1-03 : 프로젝트 환경 셋팅

semiflow 번들 - 자바 설치 - STS 설치 - Spring Starter Project 생성/셋팅 프로젝트 생성 위치 : Spring Starter Project url : https://start.spring.io(그대로) Name : sbb(프로젝트 이름) type: Gradle project Java Version : 11 packaing : Jar(그대로) Language : Java(그대로) Group : com.mysite Artifact : sbb Version : 0.0.1-SNAPSHOT(그대로) Package : com.mysite.sbb working sets > 미설정 project dependencies : web > Spring web // 웹 기능 사용 - 설정을 완료..

Lowest Common Ancestor

기본 방법 - 루트 노드에서 BFS or DFS를 시작해, 각 노드의 부모 노드와 깊이를 저장 - 깊이가 다른 경우 더 깊은 노드의 부모 노드를 1개씩 올려주면서 같은 깊이로 맞춤 *PipeLine 만약 두 노드가 같게 나온다면, 해당 노드가 LCA이므로 탐색 종료 - 깊이가 맞춰진 상태에서 동시에 부모 노드로 올라가면서 누 노드가 같아질 때까지 반복 if (2 !== 3) > 시행 최소 공통 조상 빠르게 구하기 - 깊이를 맞춰 주거나, 부모 노드로 한 단계씩 올라갈때 한 단계 > 2^k 씩 올라가 비교하는 방법 - 기존 부모 노드만 저장해 두던 방식에서 2^k번째 위치의 부모 노드도 추가로 저장할 것 - P[K][N] N번 노드의 2^K번째 부모 노드 번호 - 점화식 P[K][N] = P[K-1][P[..

Hard deck/Module 2022.08.31

220830(화)

int treeHeight = 0; int length = N; while (length != 0) { length /= 2; treeHeight++; } *주의 : length /= 2 는 2로 나눈 몫 보다는, 다음 번의 length는 이번 length를 반으로 나눈다는 뉘앙스 *주의 : 트리 배열은 우측 반쪽이 N의 공간이며, 트리 자체는 최하단 리프 우측 반쪽이 아닌 최하단 전부를 공간으로 사용하고 있다 - 트리 모양을 생각하되 최하단 리프 전체에 N이 들어가 있는 부분을 생각 - 그리고 아래에서 위로 움직이면서 높이를 계산할 것이다 - N을 2로 나눌 수 있으면 트리에서 한 칸 씩 올라갈 수 있다는 말이고 높이가 1씩 더해진다는 것 - 이제부터 세밀한 부분 for 문에서 tree[i] 등을 pr..

073 : 구간 곱 구하기

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 수 수의 변경이 빈번히 일어나는 와중에 특정 구간의 곱을 구함 세그먼트 트리 + MOD I // 수의 갯수 N, 변경횟수 M, 곱 구하는 횟수 K (2) 첫번째 수 ... (N+1) N번쨰 수 (N+2) a b c ... (N + M + K + 1) a b c O // K개의 줄에 결과를 1000000007로 나눈 나머지를 출력 *a가 1일 때 b번째 수를 c로 바꿈 *a가 2일 때 b~c 곱 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer..

Hard deck/리포트 2022.08.30

072 : 최솟값 찾기 2

(Briefing) (문제) (단 하나의 맥락) (입출력과 되어야 하는 그림) N개의 정수 배열 A번째 ~ B번째 중 가장 작은 정수 찾기 a~b 쌍이 M개 주어진다 I // N M (2) 1번째 값 ... (N+1) N번째 값 (N+2) 1번째 ab 쌍 ... (N+M+1) M번째 ab쌍 O // ab 사이 최솟값을 차례대로 출력 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { // box recognition static long[] tree; public static void main(S..

Hard deck/리포트 2022.08.30

세그먼트 트리

원리 방향 방법 N개의 배열값들 트리 최하부 리프단 오른쪽 절반에 몰아넣는다 A[2^k] ~ A[2^(k+1) -1] 0 ~ 2^(k-1) 구간인 위로 올라가면서 값을 저장, 요구하는 값을 편하게 load 가능 2N, 2N+1 > 부모인 N에 저장 자식 노드 2쌍이 부모 노드의 값에 영향을 미치는 구조 구간값 계산시 start가 왼쪽 리프쌍에 위치한다면, 부모 노드는 해당 자식 노드값을 포함되므로 선택하지 않는다 end index가 오른쪽 리프쌍에 위치한다면, 부모 노드는 자식 노드값을 포함하므로 선택하지 않는다 start / 2 == 1 > 선택 end / 2 == 0 > 선택 부모 노드로 이동하면서 선택한 것 누적 계산하기 start는 오른쪽 위 부모노드로 end는 왼쪽 위 부모노드로 start = ..

Hard deck/Module 2022.08.28