전체 글 681

[PS] BOJ2110 공유기 설치 ( BinarySearch ) with JAVA

2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net ◎ 문제풀이 개인적으로 이분탐색 발상이 어려운 문제였다. '가장 인접한 두 공유기 사이의 최대거리를 구하라.' 의 의미를 제대로 파악해야 한다. 처음에는 공유기 개수가 3대라면, 1번, 8번, 9번에 공유기를 설치하면 1번과 8번 사이가 7이 되니 최대거리는 7이 아닌가 싶었다. 근데 이런 것을 물어보는 문제가 아니었다. 인접한 두 공유기 사이의 거리의 범위는 1 [두집 사이 최소거리] 과 8[1번 집 - 9번..

문제풀이 2023.08.10

[SpringMVC] MVC 패턴 구현하기(4) - Adapter

[SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스 lordofkangs.tistory.com [SpringMVC] MVC 패턴 구현하기(2) - Controller [SpringMVC] MVC 패턴 구현하기(1) - View 분리하기 [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Reque..

Dev/SPRING 2023.08.09

[SpringMVC] MVC 패턴 구현하기(3) - Model

[SpringMVC] MVC 패턴 구현하기(1) - View [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스 lordofkangs.tistory.com [SpringMVC] MVC 패턴 구현하기(2) - Controller [SpringMVC] MVC 패턴 구현하기(1) - View 분리하기 [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Reque..

Dev/SPRING 2023.08.09

[PS] BOJ9251 LCS ( DP ) with JAVA

9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net ◎ 문제풀이 LCS에는 두 가지가 있다. 1) Longest Common SubSequence 2) Longest Common SubString 전자는 공통되는 최장 부분 수열을 구하는 것이고 후자도 공통되는 최장 부분 수열을 구하는 것이지만 연속으로 이어져 있는 부분수열을 구하는 알고리즘이다. 위 문제는 연속으로 이어지지 않고 공통되는 최장부분수열을 구하는 문제이므로, Longest Common SubSequence..

문제풀이 2023.08.09

[SpringMVC] MVC 패턴 구현하기(2) - Controller

[SpringMVC] MVC 패턴 구현하기(1) - View 분리하기 [SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스 lordofkangs.tistory.com 지난 포스팅에서는 html을 동적으로 생성하는 책임을 서블릿에서 분리하였다. @WebServlet(name = "mvcMemberSaveServlet",urlPatterns = "/servlet-mvc/members/save") public class Mvc..

Dev/SPRING 2023.08.08

[SpringMVC] MVC 패턴 구현하기(1) - View

[SpringMVC] 응답(Response)의 종류 ( Text, Html, Json ) [SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로 lordofkangs.tistory.com 지난 포스팅에서 서버가 클라이언트로 보내는 응답데이터의 종류에 대해서 다루어 보았다. 크게 두 가지 종류가 있다. 1) 서버에서 동적으로 화면을 생성하는 경우 ( JSP, Thymleaf ) 2) 클라이언트에서 동적으로 화면을 생성하는 경우 ( 리액트, vue.js ) 1)의 경..

Dev/SPRING 2023.08.08

[SpringMVC] 응답(Response)의 종류 ( Text, Html, Json )

[SpringMVC] 요청(Request)의 종류 ( GET, POST, JSON ) [SpringMVC] 웹서비스에서 Request(요청)가 처리되는 원리 ( + Servlet ) JAVA Runtime Enviroment(JRE)는 하나의 프로세스, 다수의 스레드 환경이다. JVM은 하나의 프로세스로 동작하고 다수의 스레드로 병렬처리 lordofkangs.tistory.com 지난 포스팅에서 클라이언트로부터 들어오는 요청의 종류를 알아보았다. 이번 포스팅에서는 서버가 클라이언트에게 보내는 응답데이터의 종류에 대해서 알아보겠다. 클라이언트에게 보내는 응답의 종류는 3가지 정도 알면된다. 1) Text 방식 2) Html 방식 3) Json 방식 HTTP 프로토콜은 Header와 Body 영역으로 나뉜다..

Dev/SPRING 2023.08.08

[QueryDSL] 공통으로 사용하는 표현 - ComparableExpressionBase

QueryDSL은 JPQL 생성및실행을 담당하는 프레임워크이다. 개발자(클라이언트)가 원하는 JPQL을 QueryDSL에게 요청하려면 적절한 조건을 '표현'(Expression)해야 한다. '표현'(Expression)이라고 말한 이유는 QueryDSL이 실제로 클라이언트가 원하는 JPQL을 Expression 인터페이스로 표현할 수 있는 환경을 제공하고 있기 때문이다. 표현은 데이터 타입에 따라 분류된다. NumberExpression : avg, add, abs ... BooleanExpression : and, or, isTrue, isFalse ... StringExpression : concat, charAt, contains, append ... DateExpression : dayOfMont..

Dev/JPA 2023.08.08

[PS] BOJ18404 현명한 나이트 ( BFS ) with JAVA

18404번: 현명한 나이트 첫째 줄에 N과 M이 공백을 기준으로 구분되어 자연수로 주어진다. (1 ≤ N ≤ 500, 1 ≤ M ≤ 1,000) 둘째 줄에 나이트의 위치 (X, Y)를 의미하는 X와 Y가 공백을 기준으로 구분되어 자연수로 주어진다. ( www.acmicpc.net ◎ 문제풀이 나이트를 이동시켜 체스말을 잡을 때, 나이트의 최소 이동수를 구하는 문제이다. 그래프의 좌표가 주어지고 이동비용이 동일할 때 최소이동수를 구하는 문제이니, BFS 풀이이다. 이 문제를 풀며, 시간초과가 발생했을 때 시간복잡도를 계산해서 문제를 다시 리빌딩하는 능력이 부족함을 깨달았다. 처음에는 잡아야하는 체스말이 3개 주어지면 DFS 탐색도 3번하는 방식으로 풀었다. 그랬더니 시간초과가 발생했다. 시간복잡도를 계산..

문제풀이 2023.08.08

[PS] BOJ18511 큰 수 구성하기 ( DFS ) with JAVA

18511번: 큰 수 구성하기 첫째 줄에 N, K의 원소의 개수가 공백을 기준으로 구분되어 자연수로 주어진다. (10 ≤ N ≤ 100,000,000, 1 ≤ K의 원소의 개수 ≤ 3) 둘째 줄에 K의 원소들이 공백을 기준으로 구분되어 주어진다. 각 www.acmicpc.net ◎ 문제풀이 개인적으로 DFS의 새로운 활용을 본 문제였다. 정수 N과 k개의 9보다 작거나 같은 자연수가 주어졌을 때, k개로 만든 정수 중 N보다 작지만 최대인 정수를 구하는 문제이다. k개의 자연수의 조합으로 만들어진 경우의 수 중 최대인 정수를 구하는 문제이니, 이것도 '탐색' 문제이다. k가 최대 3이고 N은 1억보다 작거나 같으니 최대 8자리 수이다. 그러므로 나올 수 있는 경우의 수는 3⁸, 6561가지이다. 시간제한..

문제풀이 2023.08.08