일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- jar 소스보기
- 스프링 배치 공식문서
- 마리아디비
- JSONArray 분할
- 스프링 배치 메타 테이블
- 마이바티스 트랜잭션
- 날짜형을 문자형으로
- JSONObject 분할
- 스테이지에 올리기
- git stage
- nonblocking
- spring reactive programming
- str_to_date
- 스프링 웹플럭스
- JSON 분리
- 성능개선
- JobExecutionAlreadyRunningException
- 폐기하기
- date_format
- 무시하기
- spring webflux
- Meta Table
- batchInsert
- 스프링 리액티브 프로그래밍
- ChainedTransactionManager #분산데이터베이스 #Spring Boot #MyBatis
- JSON 분해
- multi update
- 문자형을 날짜형으로
- org.json
- JSON 분할
- Today
- Total
목록ALGORITHM STUDY WITH PYTHON/Greedy (7)
ebson
1. 강의시간 리스트 정렬 2. heapq에 가장 먼저 시작하는 강의의 종료시간 저장 3. 강의시간 리스트를 모두 순회 3.1. 강의시간 리스트 요소의 강의 시작시간이 heapq에 저장된 최소 종료시간보다 이르면 강의시간 리스트 요소의 강의 종료시간을 heapq에 저장 3.2. 강의시간 리스트 요소의 강의 시작시간이 heapq에 저장된 최소 종료시간보다 이르지 않으면 heapq에서 최소 종료시간을 heappop하고 강의시간 리스트 요소의 강의 종료시간을 heappush 4. heapq의 길이를 출력 import sys input = sys.stdin.readline N = int(input()) times = [list(map(int, input().split())) for _ in range(N)] t..
1. 0인 경우 0의 개수를 카운트 2. 1인 경우 출력 tot 값을 1 증감 3. 양수인 경우 양수 최대힙에 추가 4. 음수인 경우 음수 최소힙에 추가 5. 양수 최대힙의 길이가 1 이하일때 까지, heappop한 두 수를 곱해서 출력 tot 값에 추가 6. 양수 최대힙에 양수가 남은 경우 출력 tot 값에 추가 7. 음수 최소힙의 길이가 1 이하일 때까지, heappop한 두 수를 곱해서 출력 tot 값에 추가 8. 음수 최소힙에 음수가 남은 경우 , 0의 개수를 카운트하고 8.1. 0이 1개라도 있으면 출력 tot값에 0을 추가하고 8.2. 0이 1개도 없으면 음수를 출력 tot 값에 추가 9. tot 값을 출력 N = int(input()) import heapq as hq nums1 = [] #..
오답풀이 - 제시된 2개 테스트 케이스는 통과했으나 제출시 시간초과했다. import sys input = sys.stdin.readline N, K = map(int, input().split()) items = [] for _ in range(N): items.append(list(map(int, input().split()))) from collections import deque bags = deque() for _ in range(K): bags.append(int(input())) items = sorted(items, key = lambda x:x[1], reverse=True) tot = 0 for item in items: # av_bags = sorted(list(filter(lambd..
오답풀이 - 제시된 4개 테스트 케이스는 통과했으나 제출시 틀린 케이스가 있었다. N = int(input()) words = [input() for _ in range(N)] words = sorted(words, key=lambda x: len(str(x)), reverse=True) matches = [0 for _ in range(10)] pointers = [] import heapq for i in range(len(words)): heapq.heappush(pointers, (-len(words[i]), i, -len(words[i]))) mIdx = 9 while mIdx >= 0: (pointer, wIdx, len) = heapq.heappop(pointers) (pointer, wId..
1. 서류 성적 순위를 기준으로 순위 목록을 오름차순 정렬 2. cur 변수에 정렬한 순위목록의 첫번째 요소의 면접 성적 순위를 저장 3. 1 부터 성적 목록의 마지막 인덱스까지 순회하면서 아래를 반복 3.1. cur보다 순회중인 인덱스의 면접 성적 순위가 높으면(작으면) cur에 해당 면접 성적 순위를 저장하고 카운트를 1 증감 4. 카운트를 출력 import sys input = sys.stdin.readline T = int(input()) for _ in range(T): N = int(input()) ranks = [list(map(int, input().split())) for _ in range(N)] ranks = sorted(ranks, key = lambda x : x[0]) cur =..
이전의 비교횟수 목록과 남아있는 카드개수 목록 중 매번 최소값을 선택할 수 있어야 한다. 1. heapq를 import 2. N개의 card를 cards 배열에 모두 저장 3. cards 의 요소가 2개 이상이라면, cards에 요소가 하나만 남을 때가지 아래를 반복 3.1. heapq.heappop을 사용해 최소값을 두번 꺼내기 3.2. tot 변수에 두 최소값의 합을 더하기 3.3. cards에 두 최소값의 합을 heapq.heappush 하기 4. tot 변수 값을 출력 import heapq N = int(input()) cards = [] for _ in range(N): heapq.heappush(cards, int(input())) tot = 0 if N > 1: while len(cards..
1. 종료시간 기준 정렬 2. 시작시간 기준 정렬 3. 정렬한 시간목록을 순회하면서 시작시간 >= 종료시간인 경우에만 cnt를 1 증감 4. cnt 출력 N = int(input()) times = [list(map(int, input().split())) for _ in range(N)] times = sorted(times, key=lambda x : (x[1], x[0])) last_e = 0 cnt = 0 for [s, e] in times: if s >= last_e: cnt += 1 last_e = e print(cnt) 참고출처 "[백준알고리즘] 1931번: 회의실배정 -Python", suri78.tistory.com, 2019년 8월 30일 수정, 2023년 6월 14일 접속, https..