스터디/알고리즘67 H-index 문제이해 논문인용횟수 배열에서 h번 이상인용된 논문이 h개 이상인 최대 h값 구하기 정렬1.배열을 내림차순하기2.배열을 돌면서 각 요소의 횟수와 각 배열을 돈 횟수 (논문의 개수세어주는거 +1 cnt) 에서 논문인용횟수보다 논문의 개수가 같거나 커질때를 기준으로 cnt출력 = ( h-index)3. [4,4,4,4] 이런배열일때 답이 4가나와야하는데 3이나오는문제 => 마지막 cnt 더세고 return 하기 def solution(citations): citations.sort(reverse=True) cnt = 0 for i in citations: #citations배열의 각요소를 돌면서 몇번인용되어있는지의 수가 개수세어서 몇편인용되었는지보다 작거나 같은것이 h-index값 .. 2024. 7. 6. 디스크 컨트롤러 문제이해 jobs의 각 행은 하나의 작업에 대한 [작업이 요청되는 시점, 작업의 소요시간]작업의 요청부터 종료까지 걸린 시간의 평균이 최소가 되는 값 구하기즉 작업의 요청부터 종료까지 걸린시간을 최소로 하기핵심 : 작업시간이 가장 적게걸리는 것 (작업소요시간이작은것) 부터 수행한다1. 시작시간을 0 으로 하고 그시간에 담을 수 있는작업들을 배열temp에 담기2. temp 에다가 작업시간이 적게걸리는 순으로 빼내기3. 현재시간에 수행할 수 있는 작업이 없으면 jobs 에서 다시 꺼내서 시간과 answer 계산하기 import heapqdef solution(jobs): n = len(jobs) answer = 0 temp = [] # 현재시간에 수행할수있는 작업 담는 배열 heap.. 2024. 7. 1. 기지국 설치 문제이해N개의 아파트가 있고 stations배열의 아파트에 기지국이 설치되있을때 기지국설치위치의 +W,-W까지 전파가 퍼진다모든아파트가 전파가 퍼지도록 하는 기지국을 세울때 최솟값 기지국 개수1.1번아파트 부터 차례로 검사한다 2. 기지국이 설치된 아파트의 -W의 위치거나 그이상일때 3. 현재 위치를 바꿔주기 location = stations[idx] + W +1 , idx도 하나 증가시키고4. 기지국의 범위가 아니라면 설치했다치고 그설치위치에서 최대의 범위 고려하고 +1 위치로 이동하기 def solution(N,stations,W): answer = 0 # 기지국의 개수 # 1번아파트부터 검사함 현재 아파트위치 location = 1 idx = 0 # 현재기지국을 나타내는 .. 2024. 6. 24. 귤고르기 k개의 귤을 담을때 크기의 종류가 최소가 될수있게 담을때귤종류의 최솟값 구하기1. 각 귤 크기별로 몇개인지 담는다 { 1 :2 } 1이 두개 이런식으로2. 개수가 많은 순으로 내림차순해서 정렬한다3. 귤의 개수와 종류 => 두개의 변수생성해서 k개와 비교하기 -개수와 종류 두개를 안셈def solution(k,tangerine): graph = {} for i in tangerine: if i not in graph: graph[i] = 1 else: graph[i] += 1 graph = sorted(graph.items(),key=lambda x:x[1],reverse=True) cnt = 0 for i i.. 2024. 6. 24. 이전 1 2 3 4 ··· 17 다음