PS/스택(stack) 4

[백준 파이썬(python) 4949번 문제] [균형잡힌 세상]

문제 설명 전형적인 스택 문제 (,[ 기호는 스택에 쌓아두고 ) ] 기호가 들어올때 짝 맞는지 확인해서 pop으로 제거해준다 조건에 맞지 않으면 그냥 스택에 쌓아서 마지막에 스택의 요소가 남아있다면 no를 출력해준다 코드 import sys while True: stk = [] sentence = sys.stdin.readline().rstrip() if sentence == ".": break for char in sentence: if char == "(" or char == "[": stk.append(char) elif char == "]": if len(stk) != 0 and stk[-1] == "[": stk.pop() else: stk.append(char) elif char == ")":..

PS/스택(stack) 2023.08.17

[백준 1874번 문제 파이썬(python)] [스택 수열] 문제가 이상한가 이해하기 어렵다

문제 내 독해력의 문제인지 문제 자체의 문제인지 알 수 없으나 도통 이해할 수가 없었다 그래서 다른 분이 설명해둔 것(이분도 약간 잘 못 이해했다)를 보고 이해를 했다 설명 입력으로 들어오는 수열(숫자의 나열)을 스택에서 뽑아와서 똑같이 만드는게 우리의 목표이다 스택이라는 공간이 있는데 여기에는 1부터 n(첫줄에 제시되는 수)까지의 수가 오름차순으로 1부터 차례대로 들어간다 그러니 위의 예제를 예로 들면 [1...2...3...4] 까지 하나씩 스택에 넣다가 4와 수열의 첫번째 숫자가 같으니 뽑아오는 것이다 그럼 스택에는 [1,2,3]이 남게되고 우연찮게 다음 숫자가 3으로 수열의 두번 째 숫자와 같으니 또 뽑아오고 스택에는 [1,2]가 남게된다 다음 숫자는 6이므로 6과 같아질 때까지 스택을 채워주면 ..

PS/스택(stack) 2023.08.13

[백준 10828번 문제 스택 파이썬(python)] input()은 쓰지 말자

문제 설명 단순히 명령문에 따라서 시행하면 되는 문제 코드 import sys N = int(sys.stdin.readline()) stk = [] for _ in range(N): command = sys.stdin.readline().split() if command[0] == "push": stk.append(command[1]) elif command[0] == "pop": if stk: print(stk.pop()) else: print(-1) elif command[0] == "size": print(len(stk)) elif command[0] == "empty": print(1 if not (stk) else 0) elif command[0] == "top": print(stk[-1] if..

PS/스택(stack) 2023.08.13