총 10분 중 11분
2001
시즌 2개, 그리고 영화
시즌 2:
5화
“아일랜드”
출연: 이나영, 김민준, 김민정, 현빈
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
장르: 애초에 역경을 딛고 이룩하는 숭고한 사랑이란 없다. 그 역경 자체가 사랑이다.
프로그램 특징: 그 곳에서 살아남는 사랑이 어떤 모습으로 걸어오는지 기다려 보고 싶다.
회차
-
[JAVA][BOJ 1197] MST: 최소 스패닝 트리0515분문제링크문제 파악최소 스패닝 트리: 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리사이클을 포함하면 가중치의 합이 최소가 될 수 없으므로 사이클을 포함하지 않는다.N개의 노드가 있으면 최소 스패닝 트리를 구성하는 엣지의 개수는 항상 N-1개다.정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000), 가중치는 음수일 수도 있으며 절댓값이 1,000,000을 넘지 않는다.최소 스패닝 트리의 가중치는 -2,147,483,648보다 크거나 같고, 2,147,483,647보다 작거나 같은 데이터만 입력으로 주어진다.접근 방법크루스칼 알고리즘: 엣지 리스트 pq(노드1, 노드2, 가중치), 사이클 확인용 UNION-FINDclass Pa..
-
[Node][Express.js] HTTP transaction 미들웨어0515분*Node.js 프로그래밍 입문(고경희)를 읽고 작성한 글입니다. Express.js(노드 기반 백엔드 프레임워크)를 이용했습니다.Response Request따로 status를 설정하지 않으면 200을 기본값으로 사용한다. POST는 자료가 새로 만들어진 상태를 표현하기 위해 status 201을 이용한다. 미들웨어 Middlewarerouterbody-parserreq - res 중간에서 req을 처리하거나 원하는 형태로 res을 수정하는 것을 미들웨어라고 한다. req가 서버에 도착하기 전 작업 parsing: req body에 포함된 값(아이디, 비번 등)을 앱에서 읽을 수 있는 형태로 변환한다.아이디, 비밀번호 값으로 사용자 인증한다 + 폼 내용 검증 라우팅 처리: 특정 URL로 들어온 re..
-
git으로 협업하기 위한 git flow 이해하기0515분나는 지금까지 개인 프로젝트를 깃에 올리지 않았다. 수정할 때마다 새로 커밋하는 것도, 잘못된 명령어 하나로 로컬이 원격과 연동되어버리면 다시 복구하느라 시간 쏟는 과정이 아까웠다. 하지만 이제는 협업을 위해 배워야 한다.개인 브랜치 사용: 로컬 코드를 원격 저장소에 올리는 코드1. git status2. git add .3. git commit -m "설명 추가: 현재 변경 내용 요약"4. git checkout -b 5. git push origin git branchgit push --set-upstream origin // git push 만으로 자동으로 원격과 연결 개인 프로젝트면 커밋 후 푸시했을 때 충돌이 거의 안난다. 로컬 리포과 원격 리포에 차이가 없기 때문이다.협업을 위해 git fl..
-
[Vue] 생명주기0515분Vue.jsVue.js - 프로그래시브 자바스트립트 프레임워크ko.vuejs.org프로젝트가 커질수록 부모, 자식 관계가 많아질텐데 각 컴포넌트의 생명주기를 알아야 완성도 있는 구현이 가능하다. Todo list 페이지를 사용한다고 하면 아래와 같은 흐름으로 로딩되어 화면이 구성된다. index.html -> main.js -> App.vue -> Todolist.vue -> Todolist components - TodolistItem메인 엔트리 포인트: App.vue 로딩PostList 컴포넌트가 로딩됨 ()PostList.vue: 게시글 목록을 불러와 자식 컴포넌트인 PostItem.vue로 전달onMounted가 실행되면서 API 호출로 데이터를 가져옴posts에 데이터가 업데이트되면서 자동으로..
-
TCP/IP 와 UDP0514분*이것이 자바다(3판)을 보고 작성한 글입니다.IP: Internet ProtocolIP 주소는 네트워크 어댑터(LAN 카드)마다 할당된다.DNS(Domain Name System)Web browser 웹 명령어 ipconfig / ifconfig웹브라우저가 DNS를 거쳐 웹서버에서 웹 페이지를 받게 되는 과정?웹 브라우저는 웹 서버와 통신하는 클라이언트로, 사용자가 입력한 도메인 이름으로 DNS에서 IP를 검색해 찾은 다음, 웹 서버와 연결해 웹 페이지를 받는다.Port 번호운영체제가 관리하는 서버 프로그램의 연결 번호포트번호가 필요한 이유는?배경: 하나의 IP 주소를 갖는 컴퓨터에서 다양한 서버 프로그램(FTP서버, DBMS, 웹 서버 등)이 실행될 수 있다. 서버는 시작할 때 특정 포트 번호에 바인..
-
2025.05.09 금융뉴스 읽기0509분https://www.joongang.co.kr/article/25334562 Fed, 3연속 금리 동결…파월 “관세 여파 관망” 22번 말했다 | 중앙일보트럼프 대통령의 금리 인하 압박이 커지고 있지만 Fed는 관세 정책에 따른 경제 불확실성이 크다고 판단했다. 제롬 파월 Fed 의장은 "행정부가 교역국들과 관세 협상에 돌입했다"며 "관세 정책이www.joongang.co.kr 트럼프 대통령의 금리 인하 압박이 커지고 있지만, 제롬 파월은 행정부가 교역국과 관세 협상에 돌입하여 관세 정책, 경제성장고용에 어떤 영향이 미칠지 불확실한 점을 들어 기준금리를 동결했다.추가로 실업과 인플레 상승 위험이 커졌다는 문구가 추가됐다. → 매파적/비둘기파적이 아닌 무역 정책으로 인한 스태그 플레이션 위험을 나타낸 것..
-
비동기데이터 처리를 위한 폼 태그 API 이해0503분폼 태그에서 받아온 정보를 DB에서 수정해보자우선 프론트에서 폼을 다룰 때 name을 지우면 안된다. name이랑 id의 차이가 없는 것 같아서 둘 중 하나를 지우고 싶었다. 서버에서 폼을 인식할 떄는 name 속성을 이용하므로 name을 냄겨두도록 하자. HTML 은 GET, POST만 가능하다.정보 수정 페이지 폼에서 버튼 클릭과 동시에 정보를 서버에 보내려면 PUT, DELETE 요청은 어떻게 사용해야할까?1. AJAX (Asynchronouss Javascript And XML)XMLHttpRequest라는 HTTP 요청을 만들어 요청 방식과 넘겨줄 정보를 지정하는 비동기 통신 방법을 말한다.// xhr 객체를 만들고 open 함수를 이용해 form POST to PUT/DELETEdocumen..
-
이것이 자바다(3판) 9장 익명객체 풀다가 new와 final을 이해하기 위해 JVM 메모리 동작 공부0425분7. 다음 Chatting 클래스는 컴파일 에러가 발생합니다. 원인을 설명해보세요.public class Chatting { class Chat { void start() {} void sendMessage(String message) {} } void startChat(String chatId) { String nickName = null; nickName = chatId; Chat chat = new Chat() { @Override public void start() { while(true) { String inputData = "안..
-
[JAVA][BOJ 1911] 흙길 보수하기 - 그리디 pq0424분[Gold V] 흙길 보수하기 - 1911문제 링크성능 요약 메모리: 39344 KB, 시간: 448 ms분류 그리디 알고리즘, 정렬, 스위핑문제 설명어젯밤 겨울 캠프 장소에서 월드 본원까지 이어지는, 흙으로 된 비밀길 위에 폭우가 내려서 N(1 ≤ N ≤ 10,000)개의 물웅덩이가 생겼다. 월드학원은 물웅덩이를 덮을 수 있는 길이가 L(1 ≤ L ≤ 1,000,000)인 널빤지들을 충분히 가지고 있어서, 이들로 다리를 만들어 물웅덩이들을 모두 덮으려고 한다. 물웅덩이들의 위치와 크기에 대한 정보가 주어질 때, 모든 물웅덩이들을 덮기 위해 필요한 널빤지들의 최소 개수를 구하여라.입력첫째 줄에 두 정수 N과 L이 들어온다.둘째 줄부터 N+1번째 줄까지 총 N개의 줄에 각각의 웅덩이들의 정보가 주어진다. ..
Algorithm/Tree
[JAVA][BOJ 1197] MST: 최소 스패닝 트리
728x90
반응형
문제 파악
최소 스패닝 트리: 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리
- 사이클을 포함하면 가중치의 합이 최소가 될 수 없으므로 사이클을 포함하지 않는다.
- N개의 노드가 있으면 최소 스패닝 트리를 구성하는 엣지의 개수는 항상 N-1개다.
정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000), 가중치는 음수일 수도 있으며 절댓값이 1,000,000을 넘지 않는다.
최소 스패닝 트리의 가중치는 -2,147,483,648보다 크거나 같고, 2,147,483,647보다 작거나 같은 데이터만 입력으로 주어진다.
접근 방법
크루스칼 알고리즘: 엣지 리스트 pq(노드1, 노드2, 가중치), 사이클 확인용 UNION-FIND
class Pair
node 1, node 2, weight
// 가중치가 작은 순으로 엣지 리스트 정렬
@Overrride
public int compare(Pair x.weight, Pair y.weight)
// edge list
List<Pair> = new ArrayList<>();
또는 pq 사용
// 사이클 존재 확인: union find
boolean find()
union() if find로 찾은 루트가 같다면 return 0;
while ( int 엣지를 더한 횟수 <= V - 1)
미사용 에지 중 가중치가 작은 에지 선택 -> pq.poll()
if (find 로 사이클 유무 확인) {
continue;
}
union();
엣지 ++ ;
코드 구현
import java.util.*;
public class Main {
public static class Edge implements Comparable<Edge> {
int s; int e; int v;
public Edge(int s, int e, int v) {
this.s = s; this.e = e; this.v = v;
}
@Override
public int compareTo(Edge o) {
return this.v - o.v;
}
}
static PriorityQueue<Edge> pq = new PriorityQueue<>();
static int[] parent;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
pq = new PriorityQueue<>();
for (int i = 0; i < m; i++) {
int s = sc.nextInt();
int e = sc.nextInt();
int v = sc.nextInt();
pq.add(new Edge(s, e, v));
}
parent = new int[n+1];
for (int i = 0; i <= n; i++) {
parent[i] = i;
}
int cnt = 0;
int ans = 0;
while ( cnt < n-1) {
Edge cur = pq.poll();
if (union(cur.s, cur.e)){
ans += cur.v;
cnt++;
}
}
System.out.println(ans);
}
public static boolean union(int a, int b) {
a = find(a);
b = find(b);
if (a != b) {
parent[b] = a;
return true;
}
return false;
}
public static int find(int x) {
if (x == parent[x]) return x;
return parent[x] = find(parent[x]);
}
}
배우게 된 점
범위: while( cnt <= n-1 ) 때문에 nullPointer 에러가 났다.
내부에서 cnt ++ 하기 때문에 `< n-1` 주의하자
728x90
'Algorithm > Tree' 카테고리의 다른 글
트리 계산을 위한 배열(인덱스) 표현 (3) | 2025.05.30 |
---|
2025:05:15
Algorithm/Tree
[JAVA][BOJ 1197] MST: 최소 스패닝 트리