ALGORITHM/Kakao

2019 KAKAO BLIND RECRUITMENT 무지의 먹방 라이브

김쿸후 2021. 4. 1. 00:31

1. 문제

programmers.co.kr/learn/courses/30/lessons/42891

 

코딩테스트 연습 - 무지의 먹방 라이브

 

programmers.co.kr

2. 풀이

 - 인덱스 번호와 내용을 한번에 담은 이중배열을 만든다.

 -  내용순으로 정렬후 작은것부터 배열에서 빼기

 - 다 뺀 후 다시 인덱스 번호 순으로 정렬

 - 남은 것으로 뽑기

 

3. 코드

def solution(food_times, k):
    food_times_sort = []
    index = 1
    for i in food_times : 
        element = []
        element.append(i)
        element.append(index)
        index = index+1
        food_times_sort.append(element)
          
    food_times_sort_0 = sorted(food_times_sort, key = lambda x : x[0])
    
    sliceN = 0
    minN = 0
    while(True):
        prev = minN
        minN = food_times_sort_0[sliceN][0]
        l = (minN-prev)*(len(food_times_sort_0)-sliceN)
        if k >= l:
            k = k - l
            sliceN = sliceN +1;
            if len(food_times_sort_0) == sliceN: 
                return -1
            if k == 0:
                break
        else :
            break

    food_times_sort_1 = sorted(food_times_sort_0[sliceN:], key = lambda x : x[1])
    
    answer = food_times_sort_1[k][1]
    return answer

4.

우선순위 큐를 안쓰고는 런타임오류나나..?

아이디어는 같은데 구현을 못하겠다.,.

슈비두비두밤밤;..