전체 글

전체 글

    [PS] 인프런 강의 - Graph 1. 그래프와 인접행렬

    [PS] 인프런 강의 - Graph 1. 그래프와 인접행렬

    그래프 종류 1. 무방향 그래프 인접행렬 입력값 : a b 1 2 1 3 2 4 2 5 3 4 행-> 열 로, 갈 수 있다면 값1 을 집어넣는다. 1 2 3 4 5 1 0 1 1 0 0 2 1 0 0 1 1 3 1 0 0 1 0 4 0 1 1 0 0 5 0 1 0 0 0 graph[a][b] = 1; graph[b][a] = 1; 2. 방향 그래프 인접행렬 입력값 : a b 1 2 1 3 2 5 3 4 4 2 1 2 3 4 5 1 0 1 1 0 0 2 0 0 0 0 1 3 0 0 0 1 0 4 0 1 0 0 0 5 0 0 0 0 0 graph[a][b] = 1; 3. 가중치 방향 그래프 인접행렬 ex) 비용 입력값 : a b c 1 2 2 1 3 4 2 5 5 3 4 5 4 2 2 1 2 3 4 5 1 ..

    [PS] 인프런 강의 - Tree 5. Tree 말단 노드까지의 가장 짧은 경로

    [PS] 인프런 강의 - Tree 5. Tree 말단 노드까지의 가장 짧은 경로

    문제 아래 그림과 같은 이진트리에서 루트 노드 1에서 말단노드까지의 길이 중 가장 짧은 길이를구하는 프로그램을 작성하세요. 각 경로의 길이는 루트노드에서 말단노드까지 가는데 이동하는 횟수를 즉 간선(에지)의 개수를 길이로 하겠습니다. 가장 짧은 길이는 3번 노느까지의 길이인 1이다. 풀이 위 그림과 달리 예를 들어 노드 3이 왼쪽 자식만 가지고 있다고 할 때는 DFS로 풀기에 제약이 있다. (왼쪽, 오른쪽 자식으로 뻗는다는 가정이 있기 때문에) DFS 코드 (자식 하나만 가지는 노드가 있으면 에러남) import java.util.Scanner; class Node{ int data; Node lt; Node rt; public Node(int val) { data = val; lt = rt = null..

    DTO의 사용범위는 어디까지? 또, DTO 변환은 어디서?

    DTO의 사용범위는 어디까지? 또, DTO 변환은 어디서?

    전에 Controller와 Service 계층 간 데이터 전달을 어떻게 해야 좋을지에 대한 포스팅을 작성했었다. 뭔가 숲보다 나무를 먼저 본? 느낌이긴한데... 하하; 그때 배우던 예제에선 Service가 Entity를 반환했고, 또 Repository 는 DB단에 제일 가깝기 때문에, 단순히 DTO의 사용범위는 Controller에서 Service 계층까지-라고 생각했다. (그리고 tmi지만 파라미터와 반환타입 둘 다 고려해야 한다는 사실을 간과해서 뭔가 찝찝함이 남은 상태다..) 그런데 QueryDSL 학습 중.... @QueryProjection을 사용하면 DTO 가 Repository에서 생성되어서 Service에 반환되는데, Repository 계층까지 DTO가 들어와도 되나? 싶고 당황스러웠다..

    [PS] 인프런 강의 - Tree 4. 송아지 찾기 (BFS)

    [PS] 인프런 강의 - Tree 4. 송아지 찾기 (BFS)

    문제 현수는 송아지를 잃어버렸다. 다행히 송아지에는 위치추적기가 달려 있다. 현수의 위치와 송아지의 위치가 수직선상의 좌표 점으로 주어지면 현수는 현재 위치에서 송아지의 위치까지 다음과 같은 방법으로 이동한다. 송아지는 움직이지 않고 제자리에 있다. 현수는 스카이 콩콩을 타고 가는데 한 번의 점프로 앞으로 1, 뒤로 1, 앞으로 5를 이동할 수 있다. 최소 몇 번의 점프로 현수가 송아지의 위치까지 갈 수 있는지 구하는 프로그램을 작성하세요. ▣ 입력설명 첫 번째 줄에 현수의 위치 S와 송아지의 위치 E가 주어진다. 직선의 좌표 점은 1부터 10,000 까지이다. ▣ 출력설명 점프의 최소횟수를 구한다. 답은 1이상이며 반드시 존재합니다. ▣ 입력예제 1 5 14 ▣ 출력예제 1 3 ▣ 입력예제 2 8 3 ..

    [PS] 인프런 강의 - Tree 3. 이진트리 순회(넓이우선탐색 BFS : 레벨탐색)

    [PS] 인프런 강의 - Tree 3. 이진트리 순회(넓이우선탐색 BFS : 레벨탐색)

    문제 아래 그림과 같은 이진트리를 레벨탐색 연습하세요. 레벨 탐색 순회 출력 : 1 2 3 4 5 6 7 풀이 레벨에 따라 노드는 다음과 같이 나뉜다 0 : 1 1 : 2 3 2 : 4 5 6 7 큐를 사용하여 푼다. 코드 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; class Node{ int data; Node lt, rt; public Node(int val) { data = val; lt = rt = null; } } public class Main { //레벨 탐색 public static void BFS(Node root) { Queue Q = new LinkedList(); Q.offer(root..