프로그래머스 LV1 K번째수(정렬)

프로그래머스 LV1 K번째수(정렬)

2021, Mar 31    

프로그래머스 lv1 K번째수(정렬)

collections.Counter() 해시 가능한 객체를 세는 데 사용하는 딕셔너리 서브 클래스


풀이

def solution(array, commands):
    answer = []
    cut_s = 0
    cut_e = 0
    cut_0 = 0
    
    for command in commands:
        cut_s = command[0]-1 # start
        cut_e = command[1] # end
        cut_array = array[cut_s:cut_e]
        cut_array = sorted(cut_array) #sorted
        print('cut_array:',cut_array)
        cut_o = command[2]-1 # order
        answer.append(cut_array[cut_o])
        print(answer)
    
    return answer

if __name__ == '__main__':
    array = [1, 5, 2, 6, 3, 7, 4]
    commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
    print(solution(array, commands))
# 다른 사람 풀이1

def solution(array, commands):
    return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))

if __name__ == '__main__':
    array = [1, 5, 2, 6, 3, 7, 4]
    commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
    print(solution(array, commands))
# 다른 사람 풀이2

def solution(array, commands):
    answer = []
    for i,j,k in commands:
        answer.append(list(sorted(array[i-1:j]))[k-1])
    return answer

if __name__ == '__main__':
    array = [1, 5, 2, 6, 3, 7, 4]
    commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]]
    print(solution(array, commands))

for i,j,k in command:로 생각해낸게 재밌음


출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges