Today I Learned
written by 602
https://programmers.co.kr/learn/courses/30/lessons/42628
def solution(operations):
answer = [] # 빈 큐 생성
for o in operations:
# I(append)
if o.split()[0] == "I":
answer.append(int(o.split()[1]))
# D(remove)
else:
if len(answer) == 0:
continue #예외처리(큐가 비어있는 경우)
if o.split()[1] == "1":
answer.remove(max(answer)) #최댓값
else:
answer.remove(min(answer)) #최솟값
if len(answer) == 0:
return [0,0]
else:
return [max(answer),min(answer)]
Heap(힙) 구현 안한 버전이라 스터디에서 힙(heap)에 대해 배우고 다시 풀어볼 예정!
https://programmers.co.kr/learn/courses/30/lessons/42748
def solution(array, commands):
answer = []
for c in commands:
i, j, k = c[0], c[1], c[2] #문제처럼 i,j,k 지정
new = sorted(array[(i-1):j]) #배열 자르기(인덱싱) 후 정렬
answer.append(new[k-1]) #k번째 수 append
return answer
어렵지 않아서 바로 넘어갔는데, 다른 사람의 풀이 중 엄청난 코드를 보게 되었다..!
def solution(array, commands):
return list(map(lambda x:sorted(array[x[0]-1:x[1]])[x[2]-1], commands))
중간에 변수를 지정하지 않고 한번에 쓰는건 오케이였는데, lambda
를 활용한 점이 놀라웠다. 알고 있음에도 실제 문제 풀이에서 떠올리기란 쉽지 않은 일인데 대단하심!!