📑 1. 문제설명💡 2. 접근방식n명의 선수가 있을 때, 각 선수는 모든 다른 선수와 경기를 하여 n-1번의 승패를 기록한다.즉, 전체 승패 결과만 있으면 각 선수의 상대적 위치를 정확히 판단해서 순위를 확정 할 수 있다. 승패를 통해 순위를 결정하는 방법은 간단히 말하면 모든 선수들 간의 직접적인 경기 결과를 반영하는 것이다. 예를 들어, 선수 i와 선수 j가 경기를 하여 승패가 결정되면, 그 결과를 기록한다. 플로이드 워셜(Floyd-Warshall) 알고리즘모든 쌍 최단 경로(all-pairs shortest path)를 구하는 알고리즘으로 그래프의 모든 노드 쌍에 대해 가장 짧은 경로를 찾는 알고리즘이다. 이 알고리즘을 사용하면 그래프의 모든 노드에 대해 다른 모든 노드로 가는 최단 경로를 ..

My Tech Blog (Java)

1. 데이터 전송 규칙 3가지1-1. 어디로 (form 태그의 action 속성)- 데이터를 전송할 목적지(servlet)를 지정한다. - action 속성에 서블릿 URL 패턴을 작성한다.여기서 /MyServlet은 서블릿의 URL 매핑 값이다. 서블릿의 URL은 @WebServlet이나 web.xml에서 설정된다. web.xml 경로WebContent/WEB-INF/web.xml 또는 src/main/webapp/WEB-INF/web.xml (프로젝트 구조에 따라 다를 수 있음)1-2. 어떤 값을 (input 태그의 name)- input 태그에 name 속성을 추가하여 서버로 전송할 데이터를 지정한다. - 서버에서 해당 데이터를 읽어오기 위해 name 속성이 필요한 것. - Servlet 에서 값을..

1. 쿼리스트링이란? URL의 뒤에 입력 데이터를 함께 제공하는 가장 단순한 데이터 전달 방법이다. 웹개발에서 웹페이지나 애플리케이션에서 GET방식으로 데이터를 요청할 때 쓰인다. POST방식은 보안수준이 상대적으로 높아서 URL 에 넘어가는 데이터가 표시되지 않기 때문이다. URL의 끝에 ?로 시작하고, 그 뒤에 키-값 쌍이 이어지는 구조이다. 이를 통해 서버에 추가적인 정보를 전달한다. 검색쿼리나 필터링에 사용된다. 네이버 검색창에 '덱스'를 검색하고 엔터 치면 일어나는 일 ▼ URL 에 ?가 생기면서 내가 입력한 검색어 '덱스'가 끝에 추가된다 마찬가지로 구글 검색창에 '손흥민'을 입력하고 엔터를 치면?아래처럼 주소창에서 url 뒤에 ? 와 각종 데이터가 붙는다.2. 구조https://www...

문제1. web.xml 이 코드 에디터 형식으로 열리지 않아서 수정이 어려운 문제2. Maven Project 에서 pom.xml 파일이 Maven POM Editor 로 열리는 문제 Eclipse Dynamic Web Project에서 `jsp`파일 또는 `xml` 파일을 열었는데 텍스트를 편집 할 수 있는 에디터로 열리지 않고 아래와 같이 Node 랑 Content 구조로 열리는 문제 또 Maven 프로젝트에서 pom.xml 파일이 xml 텍스트 에디터 대신 Maven POM Editor로 열리는 현상 나는 이게 더 알아보기 힘들고 명확하지 않다고 생각해서 xml 코드를 직접 수정하는 것을 선호한다. 아래와 같이 일반 text Editor 로 열려서 태그 인식이 안 되는 경우도 같은 해결법을 쓰면..

1. SOAP란?SOAP의 풀네임은 “Simple Object Access Protocol” 이다. 서로 다른 서비스 간의 연동을 위해 만들어진 프로토콜 HTTP, HTTPS, SMTP 등을 사용하여 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 통신 프로토콜이다. 2. 탄생 비화과거에는 DCOM(Distributed Component Object Model)이나 CORBA(Common Object Request Broker Architecture) 같은 기술로 원격 통신을 구현할 수 있었지만, 호환성과 보안 문제가 있었다. 특히, DCOM과 CORBA는 주로 TCP 기반 통신을 사용했는데, 이는 방화벽에서 차단되는 경우가 많았다. 이를 극복하기 위해, 더 범용적이고 호환성 높은 방법이 필요했..
📑 1. 문제설명💡 2. 접근방식동적계획법(Dynamic Programming)이란?동적 계획법을 아주 쉽게 설명하자면, '이미 계산한 건 기억해 두었다가, 다시 하지 말자'는 전략이다.동적 계획법(Dynamic Programming, DP)은 복잡한 문제를 작은 하위 문제로 나누어 해결하고, 그 결과를 저장하여 동일한 하위 문제를 다시 계산하지 않도록 하는 알고리즘 설계 기법이다. 주로 최적화 문제나 조합 문제를 효율적으로 해결할 때 사용된다. 동적 계획법에는 Top-Down 방식인 메모이제이션과 Bottom-Up 방식인 테이블링이 있다. Top-Down (메모이제이션)재귀를 사용하여 문제를 해결. 하위 문제의 결과를 저장하여 중복 계산 방지Bottom-Up (테이블링)작은 문제부터 차례대로 해결..
📑 1. 문제설명💡 2. 접근방식이 문제는 너무 어려워서 스스로 풀기 힘들어서 검색의 도움을 받음.주어진 문제는 그래프 이론의 최소 신장 트리(MST, Minimum Spanning Tree) 문제이다. 이 문제를 풀기 위해 필요한 전제지식- Union-Find(유니온 파인드) 자료구조- Kruskal's Algorithm (크루스칼) 알고리즘 Kruskal's Algorithm (크루스칼 알고리즘)크루스칼 알고리즘은 위에 말한 최소신장트리(MST)를 구하는 알고리즘이다. 문제의 분류 답게 greedy알고리즘으로 결정의 순간마다 최선의 결정을 함으로서 최종적인 답을 구하는 방식으로 모든 정점을 최소 비용으로 연결할 수 있게 해준다.크루스칼 알고리즘의 핵심은 모든 간선을 가중치 기준(여기서는 다리 개설..
📑 1. 문제설명💡 2. 접근방식입출력 예로 주어진 route 배열을 막대그래프로 그려 봤다. 최소한의 카메라를 배치해야 하므로 구간 종료 위치를 기준으로 오름차순 정렬 차량이 구간에서 카메라를 단 한 번만이라도 만나면 됨종료 지점에서 다음 구간과 겹치게 되므로 최소한의 카메라를 배치가능카메라 배치는 도로의 가장 왼쪽 끝부터 탐색하며 시작된다.입출력 예시에서 MIN_VALUE인 -20 지점부터 오른쪽으로 가며 종료구간과 시작구간이 겹치는 부분에 카메라가 배치된다.구간 중 가장 처음으로 만나는 종료 위치는 -15이다.따라서 이 위치에 첫 번째 카메라를 설치한다. 그리고 -13지점에서 현재 구간과 다음 구간이 만나지만 이미 해당 구간에는 카메라가 설치 완료 되었으므로 스킵한다. 그리고 다음 구간인 [-..