[코테 준비 : day15]

Choi·2023년 7월 14일
0

코딩테스트 준비

목록 보기
15/22

밖은 호우주의보..!

밖에는 비가 정~말 많이 내린다. 하루에 재난문자가 5개는 오는 듯하다. 밖은 호우주의보 하지만 내 마음은 호우!
계속해서 연습을 하다보니 뭔가 감을 찾은 듯하다. 아직 갈 길이 멀었지만 계속해서 영-차!

1.AC
https://www.acmicpc.net/problem/5430

from collections import deque
 
t = int(input())
 
for i in range(t):
    p = input()
    n = int(input())
    arr = input()[1:-1].split(',')
 
    queue = deque(arr)
 
    flag = 0
 
    if n == 0:
        queue = []
 
    for j in p:
        if j == 'R':
            flag += 1
        elif j == 'D':
            if len(queue) == 0:
                print("error")
                break
            else:
                if flag % 2 == 0:
                    queue.popleft()
                else:
                    queue.pop()
 
    else:
        if flag % 2 == 0:
            print("[" + ",".join(queue) + "]")
        else:
            queue.reverse()
            print("[" + ",".join(queue) + "]")
            
  1. 최소 힙
    https://www.acmicpc.net/problem/1927
import sys
import heapq
input=sys.stdin.readline
n=int(input())
q=[]
for _ in range(n):
    x=int(input())
    if (x==0):
        if len(q)==0:
            print(0)
        else:
            print(heapq.heappop(q))
    else:
        heapq.heappush(q, x)
  1. 절댓값 힙
    https://www.acmicpc.net/problem/11286
import sys
import heapq

n = int(input())
q = []

for i in range(n):
    a = int(sys.stdin.readline().rstrip())
    if a != 0:
        heapq.heappush(q, (abs(a), a))
    else:
        if not q:
            print(0)
        else:
            print(heapq.heappop(q)[1])

  1. https://www.acmicpc.net/problem/10866
from collections import deque
import sys

d = deque()
n = int(input())

for i in range(n):
    command = sys.stdin.readline().split()

    if command[0] == "push_front":
        d.appendleft(command[1])
    elif command[0] == "push_back":
        d.append(command[1])
    elif command[0] == "pop_front":
        if d:
            print(d[0])    
            d.popleft()
        else:
            print("-1")
    elif command[0] == "pop_back":
        if d:
            print(d[len(d) - 1])    
            d.pop()
        else:
            print("-1")
    elif command[0] == "size":
        print(len(d))
    elif command[0] == "empty":
        if d:
            print("0")
        else:
            print("1")
    elif command[0] == "front":
        if d:
            print(d[0])
        else:
            print("-1")
    elif command[0] == "back":
        if d:
            print(d[len(d) - 1])
        else:
            print("-1")
  1. 쇠막대기
    https://www.acmicpc.net/problem/10799
bar_razor = list(input())
answer = 0
st = []

for i in range(len(bar_razor)):
    if bar_razor[i] == '(':
        st.append('(')

    else:
        if bar_razor[i-1] == '(': 
            st.pop()
            answer += len(st)

        else:
            st.pop() 
            answer += 1 

print(answer)
profile
느려도 내 것으로 만드는게 좋잖아?

0개의 댓글