문제 도현이는 컴퓨터와 컴퓨터를 모두 연결하는 네트워크를 구축하려 한다. 하지만 아쉽게도 허브가 있지 않아 컴퓨터와 컴퓨터를 직접 연결하여야 한다. 그런데 모두가 자료를 공유하기 위해서는 모든 컴퓨터가 연결이 되어 있어야 한다. (a와 b가 연결이 되어 있다는 말은 a에서 b로의 경로가 존재한다는 것을 의미한다. a에서 b를 연결하는 선이 있고, b와 c를 연결하는 선이 있으면 a와 c는 연결이 되어 있다.) 그런데 이왕이면 컴퓨터를 연결하는 비용을 최소로 하여야 컴퓨터를 연결하는 비용 외에 다른 곳에 돈을 더 쓸 수 있을 것이다. 이제 각 컴퓨터를 연결하는데 필요한 비용이 주어졌을 때 모든 컴퓨터를 연결하는데 필요한 최소비용을 출력하라. 모든 컴퓨터를 연결할 수 없는 경우는 없다. 입력 첫째 줄에 컴퓨..
문제 그래프가 주어졌을 때, 그 그래프의 최소 스패닝 트리를 구하는 프로그램을 작성하시오. 최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리를 말한다. 입력 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 가중치 C인 간선으로 연결되어 있다는 의미이다. C는 음수일 수도 있으며, 절댓값이 1,000,000을 넘지 않는다. 그래프의 정점은 1번부터 V번까지 번호가 매겨져 있고, 임의의 두 정점 사이에 경로가 있다. 최소 스패닝 트리의 가중치가 -2,147,483,..
문제 황선자씨는 우주신과 교감을 할수 있는 채널러 이다. 하지만 우주신은 하나만 있는 것이 아니기때문에 황선자 씨는 매번 여럿의 우주신과 교감하느라 힘이 든다. 이러던 와중에 새로운 우주신들이 황선자씨를 이용하게 되었다. 하지만 위대한 우주신들은 바로 황선자씨와 연결될 필요가 없다. 이미 황선자씨와 혹은 이미 우주신끼리 교감할 수 있는 우주신들이 있기 때문에 새로운 우주신들은 그 우주신들을 거쳐서 황선자 씨와 교감을 할 수 있다. 우주신들과의 교감은 우주신들과 황선자씨 혹은 우주신들 끼리 이어진 정신적인 통로를 통해 이루어 진다. 하지만 우주신들과 교감하는 것은 힘든 일이기 때문에 황선자씨는 이런 통로들이 긴 것을 좋아하지 않는다. 왜냐하면 통로들이 길 수록 더 힘이 들기 때문이다. 또한 우리들은 3차원..
문제 2007년 KOI에 N명의 학생들이 참가하였다. 경시일 전날인 예비소집일에, 모든 학생들은 자신이 N명 중에서 몇 등을 할 것인지 예상 등수를 적어서 제출하도록 하였다. KOI 담당조교로 참가한 김진영 조교는 실수로 모든 학생의 프로그램을 날려 버렸다. 1등부터 N등까지 동석차 없이 등수를 매겨야 하는 김 조교는, 어쩔 수 없이 각 사람이 제출한 예상 등수를 바탕으로 임의로 등수를 매기기로 했다. 자신의 등수를 A등으로 예상하였는데 실제 등수가 B등이 될 경우, 이 사람의 불만도는 A와 B의 차이 (|A - B|)로 수치화할 수 있다. 당신은 N명의 사람들의 불만도의 총 합을 최소로 하면서, 학생들의 등수를 매기려고 한다. 각 사람의 예상 등수가 주어졌을 때, 김 조교를 도와 이러한 불만도의 합을 ..
현재 진행중인 사이드 프로젝트에서 사용하는 WebFlux를 분석하면서 정리한 글입니다. Mono 내에는 많은 메서드가 존재하므로 사용했던 메서드 위주로 정리할 예정입니다. 찾으시는 메서드가 없다면 아래 적어논 docs를 참고해주시면 됩니다. reactor.core.publisher 패키지에 존재하는 추상 클래스입니다. 기존 개발 형태는 데이터를 파라미터로 한번에 던지고 결과를 한 번에 받습니다. 결과가 다수면 Collection으로 받습니다. Mono를 이용하여 위와 유사하게 작성할 수 있습니다. List와 같은 container라고 생각하면 됩니다. OnNext 신호를 통해 최대 한 개의 항목을 방출하는 기본 rx 연산자를 가진 Reactive Streams Publisher는 onComplete 신호..
함수형 인터페이스입니다. 단일 입력 인수를 수락하고 결과를 반환하지 않는 작업을 나타냅니다. 대부분의 다른 함수형 인터페이스와 달리 Consumer는 사이드 이팩트을 통해 작동할 것으로 예상됩니다. @FunctionalInterface public interface Consumer { /** * Performs this operation on the given argument. * * @param t the input argument */ void accept(T t); /** * Returns a composed {@code Consumer} that performs, in sequence, this * operation followed by the {@code after} operation. If p..
현재 진행중인 사이드 프로젝트에서 사용하는 WebFlux를 분석하면서 정리한 글입니다. 아무 값도 없거나 단일 값 또는 오류를 내보내지 않도록 실제 다운스트림 subscriber 주위에 Wrapper 인터페이스 API입니다. void success(); 값 없이 완료합니다. 이 메서드를 여러 번 호출하거나 다른 종료 메서드 이후에 호출해도 아무런 효과가 없습니다. void success(@Nullable T value); 주어진 값(value)으로 이 Mono를 완성합니다. 이 메서드를 여러 번 호출하거나 다른 종료 메서드 이후에 호출해도 효과가 없습니다(값이 삭제됨). value에 null 값을 넣어서 이 메서드를 호출하면 표준 구현에서 success()로 자동 호출됩니다. void error(Thro..
현재 진행중인 사이드 프로젝트에서 사용하는 WebFlux를 분석하면서 정리한 글입니다. Disposable는 reactor.core 패키지 내에 있는 함수형 인터페이스입니다. 태스크 또는 리소스를 취소/폐기할 수 있음을 나타냅니다. 삭제 메서드에 대한 호출이 idempotent이거나 같아야 합니다. void dispose(); 기본 태스크 또는 리소스를 취소하거나 삭제합니다. 이 메서드를 idempotent로 만들려면 구현이 필요합니다. default boolean isDisposed() { return false; } 리소스 또는 태스크가 삭제되면 선택적으로 true를 반환합니다. 처분을 추적하기 위해 구현이 필요한 것은 아니며, 따라서 처분되더라도 결코 true로 return되지 않을 수 있습니다. ..
- Total
- Today
- Yesterday
- 테라폼
- C++
- MSA
- 이팩티브 자바
- 클린 코드
- Spring Boot
- Spring
- 프로그래머스
- 디자인 패턴
- Java
- BAEKJOON
- kotest
- node.js
- 코테
- 디자인패턴
- 이펙티브 자바
- kkoon9
- AWS
- BOJ
- 객체지향
- 백준
- Algorithm
- JPA
- programmers
- Olympiad
- 알고리즘
- 클린 아키텍처
- Kotlin
- Effective Java
- 정규표현식
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |