개발

min heap에서 2가지 원소를 pop 하고 a + 2 * b 의 등식을 적용 후 push 하는 문제였다. 파이썬의 heapq를 처음 사용해보았다. 파이썬의 heapq의 경우 일반 리스트를 min heap 처럼 사용할 수 있게 해주는 라이브러리이다. heapq.heapify(list): list가 min heap으로 변한다. (O(N), 제자리에서 정렬) heapq.heappop(list): heapify된 list에서 min 값을 리턴. heapq.heappush(list, item) push의 경우 이론에서 배웠던 heapify를 자동으로 수행해준다. 0번 인덱스에는 가장 작은 값, n번 인덱스의 2n + 1 인덱스에는 left child, 2n + 2 인덱스에는 right child ( paren..
시간 초과 답안. 비효율적으로 비교가 일어남 대략 생각해보면 복잡도 O(N^2) 효율성 테스트 1, 2, 3, 4를 모두 통과하지 못했다. def solution(prices): answer = [[0, False] for _ in prices] # q = deque(answer) # print(q) # print(q) for i, p in enumerate(prices): for j in range(i): if answer[j][1] == False: answer[j][0] +=1 if prices[j] > p: answer[j][1] = True answer = list(zip(*answer))[0] return answer 이후 문제 분류처럼 스택이나 큐로 풀어봐야겠다 생각하고 고쳐보았다. dequ..
주석을 통해 설명 작성. 데크를 이용하여 큐를 만들어서 품. 현재 문서보다 우선순위 높은 것을 찾을 때 any라는 함수를 이용해서 간결히 푸는 경우도 있었다. from collections import deque def solution(priorities, location): # 우선 순위 값과 인덱스를 데크에 저장. q = deque([ (p,i) for i, p in enumerate(priorities)]) # 문서의 인덱스를 저장해서 출력 순서를 기록. result = [] while len(q) > 0: # f: priority # idx: 문서의 인덱스(priorities list 내에서) f, idx = q.popleft() # 중요도 높은 문서가 있는지 탐색. => any로 하는 풀이도 있..
코딩테스트 고득점 Kit 스택/큐 문제 풀이 import collections def solution(progresses, speeds): # 진행 상황을 기록하는 큐 progress_que = collections.deque(progresses) # progress 증가 속도를 기록하는 큐 speed_que = collections.deque(speeds) days = 0 answer = [] # 큐가 빌 때까지 실행. while len(progress_que): first_feature = progress_que.popleft() speed = speed_que.popleft() # 첫 번째로 큐에 들어간(중요도 높은) 기능이 모두 진행이 된 경우 if speed * days + first_featu..
알고리즘 고득점 Kit 풀이중 .. from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 on_bridge_w = 0 # 대기 큐 q = deque(truck_weights) # 다리 b = deque() # 현재 시각 sec = 0 while q: # 대기 큐에서 트럭 pop t_w = q.popleft() # 다리 위에 차 있는 경우 제일 먼저 진입한 차량을 다리 길이만큼 움직였는지 확인. # w는 무게, s는 출발 시각 if len(b): w, s = b.popleft() if sec - s != bridge_length: b.appendleft((w,s)) else: on_bridge_..
요즘 웹에서 음악을 녹음하고, 편집하는 기능을 구현하고 있다. 그 과정에서 peaks.js를 사용하였는데, 여기에 사용되는 konva라는 라이브러리를 jest가 인식하지 못해서, 원래 잘 돌아가던 테스트케이스도 통과하지 못하는 상황이 발생했다. 이를 해결하는 방법을 기록해본다. 발생한 오류메세지는 아래와 같다. ● Test suite failed to run Jest encountered an unexpected token This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript. By default, if Jest sees a Babel config, it wi..
장고로 백엔드를 구현하던 중 pylint가 장고의 문법을 오류로 인식하는 것을 확인했다. 사실 이전부터 빨간줄이 그어져 있었지만, 실행에는 이상이 없어서 무시하고 있었다. 하지만 계속 밑줄이 그어지다보니 신경이 쓰였기에 pylint와 충돌하는 것을 해결해보았다. Class 'Article' has no 'objects' memberpylint(no-member) User model imported from django.contrib.auth.modelspylint(imported-auth-user) 이러한 오류들이 발생했는데 아래의 방법으로 해결할 수 있었다. pylinst-django 설치하기 pip install pylint-django 프로젝트의 루트 경로에 .pylintrc 파일 생성 후 아래의 ..
제품과 공정의 조합 제폼-공정의 수명주기 제품 수명주기: 도입-성장-성숙-쇠티 초기: 수요자 많지 않음 -> DTO 중기: 수요 증가 -> 표준화 및 생산능력 증가 -> MTO, ATO 후기: 대량 생산을 위한 완전 표준화 제품 -> MTS (소량) DTO -> MTO -> ATO -> MTS (대량) 공정의 수명 주기 제품 수명 주기에 따라 다름 초기: 생산량 적고 제품 이질성 높음 => 유연성 중요 -> 공정별 배치 후기: 생산량 많음, 표준화된 제품 대량 생산 -> 제품별 배치 공정 유형의 동태적 변화 Unit job Shop -> Batch job Shop -> Discrete(continuous) flow shop 제품-공정의 연계 균형 전략: 제품의 유형과 공정의 유형 간 최적의 연계 기본 모..
Woogie2
'개발' 카테고리의 글 목록 (2 Page)