본문 바로가기

전체 글

(397)
백준(BOJ) 1162: 도로포장 풀어야 함 나는 처음에 다익스트라를 이용하고 거기서 얻어진 최소경로가 있으면 그 최소경로를 구성하는 부분 경로의 값중에서 큰 것부터 차례로 k개 제거하려고 생각했었다. 하지만 이건 틀렸다. 그건 어디까지나 다익스트라를 통한 최단경로이지 그 경로 값을 완전히 0으로 바꾸어 버리면 더이상은 그 경로가 최단경로가 될수 있다는 보장이 없어져 버리는 것이기 때문이다. 이것에 대한 해결책으로 dp가 등장하게 된다. 아래는 열심히 한 잘못된 풀이 import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.*; public class Testing3 { static class Point { int cur; int cost; public Poi..
(풀어야함), 기말 문제 중복 문자 제거하기 B. 중복 문자 제거하기 - 탐욕적 알고리즘으로 해결하는 문제 * 전수조사하기에는 경우의 수가 너무 많음 def solve(S, included, i, freq, done, ret): if i == len(S): ret.append(''.join(S[i] for i in range(len(S)) if included[i])) return included[i] = False if S[i] in done: solve(S, included, i+1, freq, done, ret) else: if freq[S[i]] > 1: freq[S[i]] -= 1 solve(S, included, i+1, freq, done, ret) freq[S[i]] += 1 included[i] = True done.add(S[i]..
leetcode[735] Asteroid Collision https://leetcode.com/problems/asteroid-collision/ 735. Asteroid Collision(행성 충돌) import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Deque; import java.util.LinkedList; import java.util.stream.Collectors; public class Main { public static Deque solve(int[] asteroids) { Deque deque = new LinkedList(); for(var ast: asteroids){ boolean flag = t..
백준(BOJ) 11404: 플로이드 https://www.acmicpc.net/problem/11404 기본 Floyd-Walshall문제이다. 문제 조건에 두 도시간의 노선은 하나만 아니라는 조건이 있는데 이것만 입력받을 때 적절하게 처리해 주면 된다. //다익스트라=그래프 있어야 함. 벨만 포드: 그래프 없어도 됨. 플로이드. 그래프 있어야 함. import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.StringTokenizer; public class Testing3{ static int[][]map; stat..
소켓통신이란? 출처: https://helloworld-88.tistory.com/215 참고: https://www.youtube.com/watch?v=3jQ2dBpiqPo (내생각: 소켓이란 다른 계층, 다른 영역으로 데이터를 보내기 위한 인터페이스. 네트워크에서 소켓이란 AL계층의 데이터를 TL계층으로 보내기 위한 인터페이스. 아래 영상에서 파일이라고 하는 것은 메시지를 전송받는 대상임. 즉 방금말한 다른영역이 파일임. 다른영역이 TCP가 되면 그 파일을 TCP Socket이라고 부르는 것임. 즉 소켓은 다른영역인 TCP로 데이터를 어떻게 보내는지 설명해 놓은 인터페이스가 설명되어 있는 인터페이스파일임(이 인터페이스를 구현한것을 소켓 라이브러리라고 하는 것같음). 소켓프로그래밍이란? TCP라는 대상에 데이터를 보..
Could not find or load main class worker.org.gradle.process.internal.worker.GradleWorkerMain 출처: https://warmth424.tistory.com/9 아랫글 보기전에 간단한 내 해결방법부터 해보기로 한다. file->Settings->Grale의 밑줄친 부분을 모두 IntellijJ IDEA로 수정했더니 해결됨.Gradle을 통하지 않고 실행하는 설정같음. 위 방법으로 해서 안될때. 해결책 2. https://warmth424.tistory.com/9
롬복(lombok)이란 출처: https://mangkyu.tistory.com/78 Java 언어를 이용해 개발을 하다 보면 기계적으로 작성해야 하는 코드들이 상당히 많다. 이번에는 기계적인 코드 작성을 자동화하여 코드 다이어트를 해주는 Java 필수 라이브러리 Lombok에 대해 알아보도록 하겠다. 롬복이란? 어노테이션 기반으로 코드를 자동완성 해주는 라이브러리이다. Lombok을 이용하면 Getter, Setter, Equlas, ToString 등과 다양한 방면의 코드를 자동완성 시킬 수 있다.
Spring AOP가 프록시 객체를 이용하여 구현하는 이유 참고: https://velog.io/@max9106/Spring-%ED%94%84%EB%A1%9D%EC%8B%9C-AOP-xwk5zy57ee (복습. Spring AOP(관점지향 프로그래밍)란? 공통관심사와 핵심 관심사를 분리하여 프로그래밍하도록 공통 관심사만을 편리하게 구현하도록 어노테이션, 라이브러리등을 제공함) 프록시 객체란? 프록시 객체는 원본 객체를 대신해서 호출될 객체로, 원본 객체를 감싸서 클라이언트의 요청을 처리하는 중간 단계에 위치합니다. 프록시 객체는 원본 객체와 같은 인터페이스를 구현하고 있어서, 클라이언트는 프록시 객체를 호출하는 것으로 인해 원본 객체의 메소드를 호출하는 것과 같은 효과를 얻을 수 있습니다. 프록시 객체를 사용하는 이유는, 프록시 객체를 통해 원본 객체에 대한 접..