일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 모두를위한R데이터분석입문
- 코딩연습
- 모두를위한 R데이터분석
- 혼공씨
- 빅데이터
- 빅데이터입문
- c++
- c프로그래밍
- 코딩
- c언어문제풀이
- 코틀린
- 초보
- 문제해결
- 알고리즘
- C언어
- 혼자공부하는C언어
- 연습문제
- 소수경로
- Algorithm
- 대학교재
- 도전실전예제
- 데이터처리
- r
- 기술
- 대학교재풀이
- IT
- Python
- 코딩테스트
- 혼공C
- PrimePath
- Today
- Total
Jupitor's Blog
[Python] 스택, 큐, 더블큐, 괄호 체크, 10진수 -> 2진수, 10진수 -> n진수 본문
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items)-1]
def size(self):
return len(self.items)
class Queue:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def enqueue(self, item):
self.items.insert(0,item)
def dequeue(self):
return self.items.pop()
def size(self):
return len(self.items)
class Deque:
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def add_front(self, item):
self.items.append(item)
def add_rear(self, item):
self.items.insert(0,item)
def remove_front(self):
return self.items.pop()
def remove_rear(self):
return self.items.pop(0)
def size(self):
return len(self.items)
def par_checker(symbol_string):
s = Stack()
balanced = True
i = 0
current = ""
while i < len(symbol_string) and balanced:
sym = symbol_string[i]
if sym in "({[":
s.push(sym)
else:
if s.is_empty():
balanced = False
else:
current = s.pop()
if not isMatched(current, sym):
balanced = False
i += 1
if balanced and s.is_empty():
return True
else:
return False
def isMatched(open, close) -> bool:
ol = "({["
cl = ")}]"
idx = ol.find(open)
return cl[idx] == close
def decToBi(n) -> str:
s = Stack()
while n :
if n % 2 == 1:
s.push(1)
else:
s.push(0)
n = n // 2
r = ""
while not s.is_empty():
r += str(s.pop())
return r
def decToBase(n, b) -> str:
s = Stack()
digits = "012345689ABCDEF"
while n:
s.push(n % b)
n = n // b
r = ""
while not s.is_empty():
r += digits[s.pop()]
return r
괄호체크, 10진수 n진수 변환 ----------------------------------------------------------------------
'IT > 알고리즘' 카테고리의 다른 글
[코딩문제] : 두 물통 문제 (0) | 2021.09.14 |
---|---|
[Python] 중위 -> 후위, 전위 수식 변환, 수식 계산, html 태그 체크 (0) | 2021.08.17 |
[Python] 시어핀스키와 하노이 (0) | 2021.08.17 |
nhn 그룹사 신입 개발자 공개채용 프리테스트 1 기출문제 (0) | 2020.09.28 |
[코딩테스트] (C++) PrimePath 문제 - Dijkstra (0) | 2020.08.14 |