전체 글(152)
-
백준 2346. 파이썬 데크 문제풀이
from collections import deque n = int(input()) numbers = list(map(int, input().split())) balloons = deque([(i+1, numbers[i]) for i in range(n)]) result = [] while balloons: index, value = balloons.popleft() result.append(index) if not balloons: break if value > 0: for _ in range(value - 1): balloons.append(balloons.popleft()) else: for _ in range(abs(value)): balloons.appendleft(balloons.pop()) ..
2023.08.09 -
파이썬 데크(deque) 공부하기.
from collections import deque d = deque([1, 2, 3, 4]) d.append(5) d.appendleft(0) print(d) print(d[0]) print(d[-1]) len(d) d.rotate(1) print(d) d.rotate(-1) print(d) d.clear() print(d) append 하면 뒤에 붙고, appendleft하면 앞에 붙는다. d[0]. d[-1]은 peeking이라는 것인데, pop과는 다르게 그 숫자를 불러와주지만 숫자가 사라지거나 하지는 않는다. pop을 적지는 않았지만 pop()과 popleft()하면 됨. roate도 된다. d.roate(1)을 하면 맨 오른쪽에 있는게 맨 왼 쪽으로 간다. d.roate(-1)을 하면 맨 왼..
2023.08.08 -
백준 11866 파이썬 문제풀이.
import queue import sys num, count = map(int, sys.stdin.readline().split()) people = queue.Queue() dead_people = queue.Queue() [people.put(n) for n in range(1, num+1)] while people.qsize() > 1: for i in range(count-1): people.put(people.get()) dead_people.put(people.get()) dead_people.put(people.get()) print('') join(map이 의외로 헷갈렸다. 아니 이걸 제출을 해야 하는데 제출양식이 이런 식이니까 어떻게 해야할지 당황스러워서 헤맸다. join을 하면 [] ..
2023.08.08 -
파이썬 queue 모듈 사용하기. 백준 2164 파이썬 문제풀이.
import queue cards = int(input()) deck = queue.Queue() for i in range(1, cards+1): deck.put(i) print(list(deck.queue)) 지금 백준 문제를 하고 있는데 파이썬 queue 모듈을 쓰고싶어서 공부중이다. 우선 queue를 import 하고 초기화가 queue.Queue()를 한다. 희한하다. 아마 Queue() 말고 다른 것도 있나보다 아마 deque겠지? 데크라고 한다. 데큐라고 하지말자. list(deck.queue)를 했더니 리스트 형식으로 안에 들어있는 요소들이 모두 나왔다. https://docs.python.org/3/library/queue.html queue — A synchronized queue cl..
2023.08.07 -
백준 9012 파이썬 문제풀이.
import sys def is_balanced(s): stack = [] for char in s: if char == '(': stack.append(char) elif char == ')': #stack에 빈값이 없고(True 이며) stack의 끝자리가 '(' 문자인 경우, if stack and stack[-1] == '(': #맨 마지막 것을 pop 한다. stack.pop() else: return False # not stack = True라는 뜻. return not stack a = int(sys.stdin.readline()) for _ in range(a): s = input().strip() if is_balanced(s): print('YES') else: print('NO') ..
2023.08.07 -
백준 10773 파이썬 문제풀이
import sys a = int(sys.stdin.readline()) Stack = [] result = 0 for _ in range(a): b = int(sys.stdin.readline()) if b != 0: Stack.append(b) else: Stack.pop(-1) print(sum(Stack)) append와 pop의 개념을 확인하는 문제여서 어렵지 않게 마무리했다.
2023.08.07