본문 바로가기

전체 글

(381)
*************스프링 설정코드 변경 연습************** 처음에 문제는 아래와 관련해서 시작되었다. 어떻게 함수에서 String형 반환값을 반환하면 그것을 가지고 그 "반환되는 문자열.html" 라는 이름의 페이지에 접근을 하는가? 답은 thymeleaf template engine이고 이 템플릿엔진의 설정을 바꾸면 resources/templates 라는 폴더에서 해당 파일명을 찾지 않고 다른 폴더에서 찾을수 있도록 변경할 수 있다는 것이 강사의 설명이었다. 그러면서 스프링 부트의 메뉴얼을 보고 설정을 변경할 수 있다고 말하였고 나는 이런 설정을 직접 한번 변경해 보는 과정이 큰 공부가 될것이라고 생각하여 한번 변경해보기로 하였고 그 결과는 성공적이었고 많이 배울수 있는 계기가 되었다. 아래는 그 과정에서 내가 알게 된것을 정리한것이다. 1. 첫번째 난관은 ..
백준(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 등과 다양한 방면의 코드를 자동완성 시킬 수 있다.