# 신장트리(Spanning Tree) 신장(spanning): 간선의 갯수를 가장 작게 노드를 전부 이어라.(= n-1개) n개 정점 n-1개의 노드 # 최소 신장트리(MST: Minimum Spanning Tree) 네트워크에 있는 모든 정점들을 가장 적은 수의 (간선 + 비용)으로 연결 최소: 비용을 가장 작게 신장: 최소한의 간선으로(= n-1개) => 즉 최소신장트리는 싸이클이 없다. # 크루스칼 알고리즘 그리디: 전체적인 해답을 찾는다는 희망으로 매 순간 최선의 선택을 하는 것. 과연 근데 그게 궁극적으로 최선인 걸까? ex) 네비지도를 보고 가다가 잠시 빠른 길로 간 게 뒤에가 다 막히는 길이여서 더 늦을 수 있음. => 따라서 매 순간 최선의 선택이 최적의 해답임을 보장할 수 없음. 그런데..
자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서는 2개 다 존재하는데 이 차이점은 뭘까? 내부로직은 heapq를 사용하고 있었다. 그럼 차이점은 뭘까? https://stackoverflow.com/questions/36991716/whats-the-difference-between-heapq-and-priorityqueue-in-python What's the difference between heapq and PriorityQueue in python? In python there's a built-in heapq algorithm that gives you push, pop, nlargest, nsmallest... etc that you can ap..
자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서 이 차이점은 뭘까? 차이점을 알기 위해서는 선행되어 알아야 하는 개념 2가지가 필요합니다. 1) GIL 2) thread-safe, Thread-Non-Safe # 선행되는 개념보고 다음글로 넘어가기 👉 👉 https://codewizard.tistory.com/53 [Python] Priority Queue, heapq의 차이점 자료구조 시간에 heap은 Priority Queue라고 배웠습니다. 그럼 파이썬 라이브러리에서는 2개 다 존재하는데 이 차이점은 뭘까? 내부로직은 heapq를 사용하고 있었다. 그럼 차이점은 뭘까? https://stackoverf codewizard.tistory.com # GI..
https://www.acmicpc.net/problem/7569 7569번: 토마토첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100,www.acmicpc.net # 문제철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마..
https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가하는 부분 수열수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는www.acmicpc.net# 문제수열 A가 주어졌을 때, 그 수열의 증가하는 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가하는 부분 수열은 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 이고, 합은 113이다..
https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000)www.acmicpc.net 문제이 문제는 아주 평범한 배낭에 관한 문제이다.한 달 후면 국가의 부름을 받게 되는 준서는 여행을 가려고 한다. 세상과의 단절을 슬퍼하며 최대한 즐기기 위한 여행이기 때문에, 가지고 다닐 배낭 또한 최대한 가치 있게 싸려고 한다.준서가 여행에 필요하다고 생각하는 N개의 물건이 있다. 각 물건은 무게 W와 가치 V를 가지는데, 해당 물..
docker라고 입력 시 커맨드 리스트 나옴. docker [command 대상] -- help => 해당 컴포넌트에 사용가능한 커맨드 알려줌 [컨테이너] 커맨드 start - 컨테이너 실행 stop - 컨테이너 정지 create - 컨테이너 생성 run - 이미지를 내려받고 컨테이너를 생성 및 실행 rm - 컨테이너 삭제 exec - 컨테이너에서 프로그램 실행 ls - 컨테이너 목록 출력 cp - 컨테이너와 호스트 간 파일 복사 commit - 컨테이너를 이미지로 변환 [이미지] 커맨드 pull - 이미지를 내려받음 rm - 이미지 삭제 ls - 가지고 있는 이미지 목록을 출력 build - 이미지 생성 주요옵션 --name: 컨테이너 이름 -p: 포트번호 지정 -v: 볼륨 설정 -e: 환경 변수 설정..
# Auditing? Audit는 사전적 의미로 감사하다, 심사하다 등의 의미를 지닌다. Spring Data JPA는 Auditing이라는 기능을 제공한다. # 사용이유 보통 Entity에는 해당 데이터의 "생성시간과 수정시간"을 포함한다. 차후 유지보수에 있어 굉장이 중요한 정보임. DB에 (삽입,갱신)하기 전, "시간 데이터"를 넣어주어야 함. 이런 단순한 코드가 "테이블"과 "서비스 메소드"에 포함된다면 코드가 지저분해질 수 있기에 JPA가 제공하는 JPA Auditing을 사용할 수 있다. # 사용방법 스프링 부트에서 gradle로 의존성을 관리한다면 dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-..