프로그래머스 K번째 수 (Python)
2021. 12. 8. 01:28ㆍ발돋움/알고리즘
728x90
반응형
알고리즘에 다시 재미를 붙이기 위해 쉬운 것부터 시작하기로 한다.

#1 인덱스로만 접근하는 방법
def solution(array, commands):
answer = []
length = len(commands) #for문에서 하면 돌 때마다 매번 센다고 해서..
for i in range(length):
new_array = array[commands[i][0]-1:commands[i][1]] # i부터 j자르기
new_array.sort() # 정렬
answer.append(new_array[commands[i][2]-1]) # k번째 수 결과 리스트에 넣기
return answer
#2 위와 사실상 같지만 일차원 배열 자체를 가져와서 인덱스로 접근하는게 덜 복잡
def solution(array, commands):
answer = []
for command in commands:
temp = array[command[0] - 1 :command[1]]
temp.sort()
answer.append(temp[command[2] - 1])
return answer
#3 람다를 이용한 한 줄 (남이 한 것..)
def solution(array, commands):
return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))
람다는 정말 대단한 함수다...
아마 성능은 케이스 3번이 제일 빠르지 않을까 싶다..
잘못된 부분이나 더 알아야 하는 부분이 있다면 알려주세요 병아리에겐 큰 도움이 됩니다!

728x90
반응형
'발돋움 > 알고리즘' 카테고리의 다른 글
| [백준] 2178번 python : 미로탐색 (0) | 2021.06.04 |
|---|---|
| [백준] 2667번 python : 단지번호붙이기 (0) | 2021.06.03 |
| [백준] 11724번 python : 연결요소의 갯수 (0) | 2021.06.03 |
| [백준] 1193번 (python 파이썬) 분수찾기 / [구름레벨] 뱀 유리수 수열 (0) | 2021.04.14 |
| [백준] 6603번 (python 파이썬) 로또 (0) | 2021.04.05 |