(프로그래머스, 파이썬) 힙 - [더 맵게, 디스크 컨트롤러, 이중우선순위큐]
2022. 10. 26. 17:05
PS/프로그래머스
예전에 힙 관련해서 풀고 나서 다시 보니까 느낌이 새로웠다. 역시 공부는 지속적으로 해야하는 것.. 문제 링크 문제의 조건은 다음과 같다. 모든 scoville의 값들이 K를 넘을 때 까지 '가장 작은 값, 두 번째로 작은 값'을 각각 빼서(pop) 곱해서 더하고 넣어라(push) 단, 모든 스코빌 값들이 K 이상의 값을 가질 수 없다면 -1을 리턴해야 한다. import heapq as h def solution(scoville, K): h.heapify(scoville) #힙으로 만들어준다. count_mix = 0 while scoville[0] < K: #오름차순 정렬이므로 첫 원소가 K보다 크거나 같을 때까지 반복한다. if len(scoville) == 1: #한 개 남은 원소가 K보다 작다면..
(프로그래머스, 파이썬) 해시 - 베스트 앨범
2022. 10. 26. 15:43
PS/프로그래머스
1. 해시(Hash)는 뭘까? 해시를 이해하기 위해서는 우선 해시 함수를 먼저 알아야 한다. 해시함수의 의미는 다음 정도로 생각할 수 있다. "임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수" (출처 : 위키) "데이터를 저장하고 찾는데 사용되는 자료 구조의 한 종류. 찾고자 하는 문자열을 함수로 처리해 얻은 값으로 데이터의 위치를 찾는 방법을 말한다" (출처 : 블로그) 함수를 통해 기존의 데이터를 처리한 그 값이 해시가 되는 것이고, 그 값을 이용해서 고유한 인덱스를 갖게끔 해서 이용하는 것이다. 일종의 암호화를 통해서 그 값을 특정하고, 분류할 수 있게끔 만드는 것이라고 생각이 든다. 2. 해시는 왜 쓰는 것일까? 공통된 것과 그렇지 않은 것 여러 정보를 가진 입력들이 각자 가지는 고유..
(프로그래머스, 파이썬) 정렬 : [K번째 수, H-index, 가장 큰 수]
2022. 6. 22. 12:51
PS/프로그래머스
레벨 2부터 벽을 느끼는 나.. 역시 물 실버였다. 코딩테스트 연습 - 정렬 - K번째 수 -내 코드- def solution(array, commands): answer = [] for cmd in commands: i, j, k = cmd array_processed = sorted(array[i-1:j]) answer.append(array_processed[k-1]) return answer 딱 눈에 보이고 이해되는 대로 풀었다. -신박한 풀이- def solution(array, commands): return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands)) 허허.. 차근차근 알아보자 array를 [i-1 : j]까지 슬라이스,..