목록Java (371)
기록방
👉 문제링크 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 🔸 문제 분석 🔸 N개의 도시와 도시 사이를 연결하는 M개의 단방향 도로가 존재한다. 도로 하나 당 1의 거리를 갖는다. X번 도시에서 시작해 최단거리가 정확히 X 거리만큼 떨어진 도시의 목록을 출력한다. 🔸 문제 풀이 🔸 하나의 노드에서 다른 모든 노드들의 최단 거리를 구해야 하므로 다익스트라 알고리즘을 사용한다. N은30만개인데, 우선순위 큐를 활용해 O(NlogN)으로 해결..
길벗 IT도서에서 주관하는 코딩 자율학습단 8기 : Spring Boot 파트에 참여한 기록입니다 [ 목록 ]4.1 롬복이란**롬복(lombok)**이란 코드를 간소해주는 라이브러리개발하다 보면 getter(), setter(), constructor(), toString() 과 같은 필수 메서드를 사용매번 작성할 필요 없도록 나온 도구가 롬복Slf4j를 이용한 로깅 가능**로깅(logging)**이란 프로그램의 수행 과정을 기록으로 남기는 것println() 문을 개선4.2 롬복을 활용해 리팩터링하기4.2.1 롬복 설치하기build.gradle에 롬복 의존성 추가compileOnly 'org.projectlombok:lombok'annotationProcessor 'org.projectlombok:lo..
길벗 IT도서에서 주관하는 코딩 자율학습단 8기 : Spring Boot 파트에 참여한 기록입니다 [ 목록 ]3.1 폼 데이터란폼 데이터(form data)란 HTML 요소인 태그에 실려 전송되는 데이터게시판 내용 작성 후 [전송] 버튼 누를 때, 데이터를 서버로 전송할 때 사용 됨택배처럼 어디로, 어떻게 보낼지 작성함 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받음.이 객체를 DTO(Data Transfer Object)라고 함DTO로 받은 데이터는 최종적으로 데이터베이스(DB, Database)에 저장 됨 3.2 폼 데이터를 DTO로 받기3.2.1 입력 폼 만들기{{>layouts/header}} Submit{{>layouts/footer}}3.2.2 컨트롤러 만들..
👉 문제링크 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 🔸 문제 분석 🔸 N개의 집과 M개의 집 사이를 연결하는 길이 있다. 서로 이어지지 않는 마을 2개를 만드려고 하는데, 각 마을 안에서는 집끼리 길이 연결되어 있어야 한다. 길의 유지비 합의 최소값을 출력한다. 🔸 문제 풀이 🔸 마을 안에서 집 사이에 길이 연결되어 있어야 하고, 그 가중치가 최소가 되어야 하므로, 두 개의 최소 신장 트리(MST) 가 만들어져야 한다. 여기서는 크루스칼(Kruskal) 알고리즘을..
👉 문제링크 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 🔸 문제 분석 🔸 최소 신장 트리(MST, Minimum Spanning Tree)를 구현하는 문제이다. 크루스칼(Kruskal)과 프림(Prim) 알고리즘이 있는데, 여기서는 크루스칼을 사용했다. 🔸 문제 풀이 🔸 크루스칼 알고리즘의 기본 형태를 구현한다. 간선을 가중치 기준으로 오름차순 정렬하기 위해 우선순위 큐를 사용했다. 사이클 방지를 위해 같은 집합에 포함되어있는지 확인이 필요하므로 Union-..