1. DFS와 BFS (백준 1260번)
2. 스택 (백준 10828번)
직접 작성한 코드)
n=int(input())
stack=[]
for i in range(n):
a=input()
if a.split()[0]=='push':
stack.append(a.split()[1])
elif a=='top':
if not stack:
print(-1)
else:
print(stack[-1])
elif a=='size':
print(len(stack))
elif a=='pop':
if not stack:
print(-1)
else:
print(stack[-1])
stack.pop()
elif a=='empty':
if not stack:
print(1)
else:
print(0)
3. 큐 (백준 10845 번)
직접 작성한 코드)
from collections import deque
n=int(input())
queue=deque()
for i in range(n):
a=input()
if a.split()[0]=='push':
queue.append(a.split()[1])
elif a=='size':
print(len(queue))
elif a=='pop':
if not queue:
print(-1)
else:
queue.popleft()
elif a=='empty':
if not queue:
print(1)
else:
print(0)
elif a=='front':
if not queue:
print(-1)
else:
print(queue[0])
elif a=='back':
if not queue:
print(-1)
else:
print(queue[-1])
4. 피보나치 수 5 (백준 10870번)
직접 작성한 코드)
n=int(input())
array=[]
array.append(0)
array.append(1)
for i in range(n+1):
if i==0 or i==1 :
continue
array.append(array[i-1]+array[i-2])
print(array[n])
5. 균형잡힌 세상 (백준 4949번)
직접 작성한 코드)
from collections import deque
import math
while True:
array=[]
a=list(input())
dq=deque()
result='yes'
if a[0]=='.' and len(a)==1:
break
for i in a:
if i=='[' or i== '(':
dq.append(i)
elif i==']':
if len(dq)==0:
result='no'
break
st=dq.pop()
if st!='[':
result='no'
break
elif i==')':
if len(dq)==0:
result='no'
break
st=dq.pop()
if st!='(':
result='no'
break
if (len(dq)!=0):
result='no'
print(result)
'CS Study > algorithm' 카테고리의 다른 글
이진 탐색 문제풀이 (0) | 2022.07.30 |
---|---|
기타 문제풀이 (0) | 2022.07.22 |
정렬 알고리즘 (문제 풀이) (0) | 2022.07.14 |
그리디 알고리즘 (문제 풀이) (0) | 2022.07.12 |
최단 경로 알고리즘 (0) | 2022.07.12 |