Java 52

[HTTP] 데이터 요청 - POST

POST HTML Form POST 요청 방식은 클라이언트에서 서버로 리소스를 생성하거나 업데이트 하기위해 사용된다. 예) 회원 가입, 상품 주문 등에서 사용하는 방식이다. 특징 - 메시지 바디에 데이터가 들어가기 때문에 컨텐트 타입이 존재한다. -> content-type : application/x-www-form-urlencoded - 메시지 바디에 쿼리 파리미터 형식(GET 방식)으로 데이터를 전달한다 -> username=hello&age=20 예) 아래와 같은 웹 화면에 key(username, age)와 value를 담아서 전송을 하면 웹 브라우저는 다음 형식으로 HTTP 메시지를 만든다. - Request URL : http://localhost:8080/request-param - con..

HTTP 2021.07.25

[HTTP] 데이터 요청 - GET

GET 쿼리 파라미터 GET 요청 방식은 클라이언트에서 서버로 정보를 조회하기 위해 사용된다. GET 요청의 일부로서 메시지 바디 없이, URL의 쿼리 파라미터를 사용해서 데이터를 전달한다. 예) 검색 용어, 날짜 범위, 필터, 페이징, 쿼리를 정의하는 기타 정보 쿼리 파라미터는 URL에 다음과 같이 '?'로 시작하고, 추가 파라미터는 '&'로 구분한다. 예) http://localhost:8080/request-param?username=hello&age=20 서버에서는 'HttpServletRequest'가 제공하는 다음 메서드를 통해 쿼리 파라미터를 편리하게 조회할 수 있다. //단일 파라미터 조회 String username = request.getParameter("username"); //파라..

HTTP 2021.07.25

[HTTP] HTTP 데이터 요청 3가지

* HTTP 요청메시지를 통해 클라이언트에서 서버로 데이터를 요청하는 방법은 세가지로 정리가 된다. 1. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이 URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 - GET 방식 정리 글 - https://cornarong.tistory.com/29?category=997186 [HTTP] 데이터 요청 - GET GET 쿼리 파라미터 GET 요청 방식은 클라이언트에서 서버로 정보를 조회하기 위해 사용된다. GET 요청의 일부로서 메시지 바디 없이, URL의 쿼리 파라미터를 사용해서 데이터를 전달한다. 예) 검색 cornarong.tistory.com 2. POST - HT..

HTTP 2021.07.24

[Algorithm] 친구인가? (Disjoint-Set : Union&Find)

설명 반 학생은 N명이다. 각 학생들의 친구관계를 알고 싶다. 모든 학생은 1부터 N까지 번호가 부여되어 있고, 각각 두 명의 학생은 친구 관계가 번호로 표현된 숫자쌍이 주어진다. 만약 (1, 2), (2, 3), (3, 4)의 숫자쌍이 주어지면 1번 학생과 2번 학생이 친구이고, 2번 학생과 3번 학생이 친구, 3번 학생과 4번 학생이 친구이다. 그리고 1번 학생과 4번 학생은 2번과 3번을 통해서 친구관계가 된다. 학생의 친구관계를 나타내는 숫자쌍이 주어지면 특정 두 명이 친구인지를 판별하는 프로그램을 작성하세요. 두 학생이 친구이면 “YES"이고, 아니면 ”NO"를 출력한다. 입력 첫 번째 줄에 반 학생수인 자연수 N(1

Algorithm 2021.07.24

[Algorithm] 최대 수입 스케쥴(PriorityQueue)

설명 N개이 기업에서 강연 요청을 해왔다. 각 기업은 D일 안에 와서 강연을 해 주면 M만큼의 강연료를 주기로 했다. 각 기업이 요청한 D와 M를 바탕으로 가장 많을 돈을 벌 수 있도록 강연 스케쥴을 짜야 한다. 단 강연의 특성상 하루에 하나의 기업에서만 강연을 할 수 있다. 입력 첫 번째 줄에 자연수 N(1 50 2 마지막 1일에 할 수 있는 가장 높은 강의를 구한다. 1~3일중에 구한다. 1~3일중에 강의료가 가장 큰 값을 구한다. (30 3 / 40 2 / 30 1 / 20 1) -> 40 2 이렇게 최대(D)부터 최소(D)까지 각각의 최적의 값을 구한 후 다 더하면 된다. 풀이. class Company implements Comparable{ public int pay; public int da..

Algorithm 2021.07.21

[Algorithm] 회의실 배정(Greedy, 그리디)

설명 한 개의 회의실이 있는데 이를 사용하고자 하는 n개의 회의들에 대하여 회의실 사용표를 만들려고 한다. 각 회의에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 최대수의 회의를 찾아라. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 입력 첫째 줄에 회의의 수 n(1

Algorithm 2021.07.20

[Algorithm] 미로의 최단거리 통로(BFS)

설명 7*7 격자판 미로를 탈출하는 최단경로의 길이를 출력하는 프로그램을 작성하세요. 경로의 길이는 출발점에서 도착점까지 가는데 이동한 횟수를 의미한다. 출발점은 격자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 도로이다. 격자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면 위와 같은 경로가 최단 경로의 길이는 12이다. 입력 첫 번째 줄부터 7*7 격자의 정보가 주어집니다. 출력 첫 번째 줄에 최단으로 움직인 칸의 수를 출력한다. 도착할 수 없으면 -1를 출력한다. 풀이 과정. 좌표(1,1)부터 시작해서 상하좌우 0을 확인 후 Queue에 담으면서 진행. 위 그림좌표와 같은 크기의 2차원 확인배열 하나 만든다. 기존배열은 1칸 씩 이동할 때 마다 ..

Algorithm 2021.07.19

[Algorithm] 토마토(BFS활용)

설명 토마토는 아래의 그림과 같이 격자 모양 상자의 칸에 하나씩 넣어서 창고에 보관한다. 창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토의 인접한 곳은 왼쪽, 오른쪽, 앞, 뒤 네 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못한다. 토마토를 창고에 보관하는 격자모양의 상자들의 크기와 익은 토마토들과 익지 않은 토마토들의 정보가 주어졌을 때, 며칠이 지나면 토마토들이 모두 익는지, 그 최소 일수를 구하는 프로그램을 작성하라. 단, 상자의 일부 칸에는 토마토가 들어있지 않을 수도 있다. 입력..

Algorithm 2021.07.17