PROGRAMMERS Python Lv1. K번째 수
이번 문제는 K번째 수이다.
def solution(array, commands):
answer = []
for i in range(len(commands)):
a = int(commands[i][0])-1
b = int(commands[i][1])
c = int(commands[i][2])-1
x = array[a:b]
sort_x = sorted(x)
y = sort_x[c]
answer.append(y)
return answer
문제를 푸는 순서를 다음과 같이 정리했다.
1.commands 리스트에서 시작하는 숫자와 끝나는 숫자, 그리고 K번째 수를 뽑는다.
이는 for 문을 통해 지정한다.
-
뽑은 a, b ,c를 array에 적용시켜준다.
-
결과로 나오는 y를 answer에 append 시켜주면 된다.
이번 문제는 평소보다 비교적 쉬운 문제인 것 같다.
그렇지만 다른 사람의 풀이를 보면서 더 간결한 코드를 공부하는게 필요한 것 같아 가져왔다.
def solution(array, commands):
return [sorted(array[a-1:b])[c-1] for a,b,c in commands]
단 한 줄로 나의 저 긴 답을 표현했다.
풀이에 따르면 파이썬의 List comprehension을 사용해서 풀면
성능 면에서도 더 좋다고 한다.
commands의 a,b,c를 각각 지정해서 바로 array 적용시켜주면 답이 return된다.
나도 이런 간결한 코드를 짤 수 있을 때까지 열심히 해봐야겠다.
혹시 제 풀이에 오류가 있거나
더 좋은 방법이 있다면 댓글 남겨주시면 감사드립니다.
댓글남기기