띵유로그

[프로그래머스][정렬]K번째 수 본문

알고리즘

[프로그래머스][정렬]K번째 수

띵유 2020. 8. 24. 23:13
반응형

내 풀이

def solution(array, commands):
    answer = []
    for i in commands:
        temp = array[i[0]-1:i[1]]
        temp.sort()
        answer.append(temp[i[2]-1])

    return answer

주의할 점
1. 파이썬의 array[ i : j ]는 index i ~ j-1 까지를 return 한다.

2. .sort는 리스트의 내장함수로 None 반환
   a=sorted(a)는 정렬한 list를 반환
   -> a=temp.sort() 이런식으로 하면 None

 


다른사람 풀이

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

 

1. 람다를 이용
     lamda 인자 : 표현식
     ex)

def plus(x,y):
	return x+y
(lamda x,y:x+y)(10,20)

2. map 을 이용
 map(함수,리스트)
 리스트에서 한 원소씩 꺼내어 함수 적용

map(lambda x : sorted(array[x[0]-1:x[1])[x[2]-1],commands)
commands원소를 하나씩 꺼내와 x에 넣음 -> 그다음 함수 적용

반응형
Comments