분류 전체보기
-
[백준] 2164번 카드2 (파이썬)
2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 코드 from collections import deque n = int(input()) a = list(i+1 for i in range(n)) num_list = deque(a) i=0 for j in range(n-1): num_list.popleft() a = num_list.popleft() num_list.append(a) print(num_list[0])
-
[백준] 18258번 큐 2 (파이썬)
18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 import sys from collections import deque n = int(sys.stdin.readline()) q = deque([]) for i in range(n): s = sys.stdin.readline().split() if s[0] == 'push': q.append(s[1]) elif s[0] == 'pop': if not q: print(-1) else: print(q.popleft()) elif s[0..
-
[백준] 17298번 오큰수 (파이썬)
17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 코드 n = int(input()) li = list(map(int, input().split())) stack= [] result = [-1 for i in range(n)] for i in range(n): try: while li[stack[-1]] < li[i]: result[stack.pop()] = li[i] except: pass stack.append(i) print(*result)
-
[백준] 1874번 스택 수열 (파이썬)
1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 코드 n = int(input()) stack = [] count = 1 temp = True answer = [] for i in range(n): num = int(input()) while count
-
[백준] 4949번 균형잡힌 세상 (파이썬)
4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 코드 import sys while True: braket = [] check = True string = sys.stdin.readline().rstrip() if string == ".": break for letter in string: if letter == "[": braket.append(letter) elif letter == "(": braket.append(letter) elif letter == "]": if len(braket)..
-
[백준] 9012번 괄호 (파이썬)
9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 코드 def VPS(string): left_ps = [] for i in range(len(string)): if string[i] == '(': left_ps.append(string[i]) elif string[i] == ')': if len(left_ps) < 1: left_ps.append(1) break else: left_ps.pop(-1) if len(left_ps) == 0: print('YES') else: pri..
-
[백준] 10773번 제로 (파이썬)
10773번: 제로 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경 www.acmicpc.net 코드 stack = [] def count(i): if i == 0: if len(stack) >= 1: stack.pop(-1) else: stack.append(i) return k = int(input()) num_list = list(int(input()) for i in range(k)) for i in num_list: count(i) print(sum(stack))
-
[백준] 10828번 스택 (파이썬)
10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 import sys stack = [] def decision(i): if i[0] == 'push': stack.append(int(i[1])) return elif i[0] == 'top': if len(stack) >= 1: print(stack[-1]) else: print(-1) elif i[0] == 'pop': if len(stack) >= 1: a = stack.pop(-1) print(a) else: print(-1) eli..