본문 바로가기

전체 글

(401)
디버거(Debugging) 사용기록 참고: https://www.youtube.com/watch?v=OHrLRg150As 난생처음 인텔리제이로 디버거를 사용해 보았다. 영상 마지막 부분에는 라이브러리나 프래임워크 내부 구조를 분석할때 디버거가 유용하게 쓰인다고 알려주는데 정말 그런것 같다. 디버거 사용동기는 Collections.nCopies() 함수의 기능이 궁금해서 였다. 우선은 영상에서 소개하는 디버거의 유용한 기능을 기록해 놓으려한다. 1. 가장 먼저 break point 설정방법이다. 그냥 빨간색 나오도록 그 경계 부분을 눌러서 break point를 설정해 준다. break point를 설정한다는 것은 디버깅의 시작과 끝을 설정한다는 것이다. break point 설정후 Debug눌러서 디버깅을 시작한다. 이제 디버깅이 시작되면..
S-algo10 동적프로그래밍(1) howSum 보호되어 있는 글입니다.
자바 스트림 라이브러리 collect의 쓰임 collect자체의 기능이 너무 많기 때문에 주로 쓰이는 것 순으로 정리하려 한다. collect()는 Stream의 데이터를 변형하고 원하는 자료형으로 변환해 준다. Stream의 아이템들을 List 또는 Set 자료형으로 변환 Stream의 아이템들을 joining 1. 어떠한 자료형에서 HashSet자료형으로 데이터를 변환하는 경우. Stream fruits = Stream.of("banana", "apple", "mango", "kiwi", "peach", "cherry", "lemon"); Set fruitSet = fruits.collect(Collectors.toSet()); for (String s : fruitSet) { System.out.println(s); } 어떠한 자료형에서 Li..
*************스프링 설정코드 변경 연습************** 처음에 문제는 아래와 관련해서 시작되었다. 어떻게 함수에서 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..