ν‹°μŠ€ν† λ¦¬ λ·°

728x90
λ°˜μ‘ν˜•

문제

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - μ΄μ€‘μš°μ„ μˆœμœ„ν

 

programmers.co.kr

 

문제 풀이

 μ£Όμ–΄μ§„ μ—°μ‚° μ’…λ₯˜μ— 따라 큐에 연산을 μ‚½μž…ν•˜κ³  μ‚­μ œν•˜λŠ” 과정을 μ§„ν–‰ν•œλ‹€. μ—°μ‚°μ˜ μ’…λ₯˜μ— 따라 λ™μž‘ν•˜λŠ” 과정은 λ‹€μŒκ³Ό κ°™λ‹€. λͺ…령어에 따라 큐에 숫자λ₯Ό μ‚½μž…ν•˜κ³ , `D 1`인 경우 νμ—μ„œ μ΅œλŒ“κ°’μ„ μ‚­μ œν•œλ‹€. 이와 달리 `D -1`인 경우 νμ—μ„œ μ΅œμ†Ÿκ°’μ„ μ‚­μ œν•œλ‹€. μ΄λŠ” λ³„λ„λ‘œ `heapq`λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šλ”λΌλ„ `list`λ₯Ό 톡해 κ°„λ‹¨νžˆ κ΅¬ν˜„ν•  수 μžˆλ‹€.

 

μ½”λ“œ

def solution(operations):
    answer = []

    for cur_op in operations:
        op, num = cur_op.split(' ')

        if op == 'I':
            answer.append(int(num))
        elif answer:
            if num == '1':
                answer.remove(max(answer))
            else:
                answer.remove(min(answer))
                
    return [max(answer), min(answer)] if answer else [0, 0]

 

728x90
λ°˜μ‘ν˜•
λŒ“κΈ€
κΈ€ 보관함
μ΅œκ·Όμ— 올라온 κΈ€
μ΅œκ·Όμ— 달린 λŒ“κΈ€