Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions 한가은/10866.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from collections import deque
import sys

n = int(input())
answer = deque()
for _ in range(n):
a = list(sys.stdin.readline().split())

if a[0] == 'push_front':
answer.appendleft(a[1])
elif a[0] == 'push_back':
answer.append(a[1])
elif a[0] == 'pop_front':
print(answer.popleft() if answer else -1)
elif a[0] == 'pop_back':
print(answer.pop() if answer else -1)
elif a[0] == 'size':
print(len(answer))
elif a[0] == 'empty':
print(0 if answer else 1)
elif a[0] == 'front':
print(answer[0] if answer else -1)
else : # a == 'back'
print(answer[-1] if answer else -1)
13 changes: 13 additions & 0 deletions 한가은/10989.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import sys

n = int(sys.stdin.readline())
num_list = [0] * 10001

for _ in range(n):
num_list[int(sys.stdin.readline())] += 1

for i in range(10001):
if num_list[i] != 0:
for j in range(num_list[i]):
print(i)

11 changes: 11 additions & 0 deletions 한가은/1463.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# 1로 만들기
def make_one(n):
D = [0] *(n+1)
for i in range(2, n+1):
D[i] = D[i-1] + 1
if i % 2 == 0: D[i] = min(D[i], D[i//2] + 1)
if i % 3 == 0: D[i] = min(D[i], D[i//3] + 1)
return D[n]

n = int(input())
print(make_one(n))
18 changes: 18 additions & 0 deletions 한가은/15649.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
def back_tracking(arr, len, used_num):
if len == m:
print(*arr)
return

for i in range(1, n+1):
if not used_num[i]:
arr.append(i)
used_num[i] = True
back_tracking(arr, len + 1, used_num)
arr.pop()
used_num[i] = False

n, m = list(map(int, input().split()))

nums = [i+1 for i in range(n + 1)]
used_num = [False] * (n+1)
back_tracking([], 0, used_num)
14 changes: 14 additions & 0 deletions 한가은/15650.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
def backtracking (arr, start):
if m == len(arr):
print(*arr)
return

for i in range(start, n+1):
arr.append(i)
backtracking(arr, i+1)
arr.pop()


n, m = list(map(int, input().split()))
s = 1
backtracking([], s)
54 changes: 54 additions & 0 deletions 한가은/24060.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
#merge sort
def merge_sort(arr, tmp, p, r, k):
global count, result
if p<r:
q = (p+r)//2
merge_sort(arr, tmp, p, q, k)
merge_sort(arr, tmp, q+1, r, k)
merge(arr, tmp, p, q, r, k)

def merge(arr, tmp, p, q, r, k):
global count, result
i, j, t = p, q+1, 0

while i <= q and j <= r:
if arr[i] <= arr[j]:
tmp[t] = arr[i]
i += 1
else:
tmp[t] = arr[j]
j += 1
t += 1
count += 1
if count == k:
result = tmp[t-1]

while i <= q:
tmp[t] = arr[i]
i += 1
t += 1
count += 1
if count == k:
result = tmp[t - 1]

while j <= r:
tmp[t] = arr[j]
j += 1
t += 1
count += 1
if count == k:
result = tmp[t - 1]

for i in range(t):
arr[p + i] = tmp[i]


n, k = map(int, input().split())
a = list(map(int, input().split()))

count = 0 # 저장 횟수
result = -1 # K번째 저장되는 수

tmp = [0] * n
merge_sort(a, tmp, 0, n - 1, k)
print(result if result != -1 else -1)
28 changes: 28 additions & 0 deletions 한가은/4949.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import sys

while True:
state = True
stack = []
commands = list(sys.stdin.readline().rstrip())
if commands == ['.']: # command는 list이기 때문에 []리스트로 일치 판별
break
for char in commands:
if char == '(':
stack.append('(')
elif char == '[':
stack.append('[')
elif char == ')':
if stack and stack.pop() == '(':
state = True
else:
state = False
break
elif char == ']':
if stack and stack.pop() == '[':
state = True
else :
state = False
break
if stack:
state = False #stack이 비었을 때만 yes
print('yes' if state else 'no')
23 changes: 23 additions & 0 deletions 한가은/B10828.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import sys

stack = []
n = int(sys.stdin.readline())
for _ in range(n):
command = list(sys.stdin.readline().split())
if command[0] == "push" :
stack.append(command[1])

elif command[0] == "pop" :
if(stack) : print(stack.pop())
else : print(-1)

elif command[0] == "size":
print(len(stack))

elif command[0] == "empty":
if(stack): print(0)
else : print(1)

else :
if(stack) : print(stack[-1])
else : print(-1)
18 changes: 18 additions & 0 deletions 한가은/B10845.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import sys

queue = []
n = int(sys.stdin.readline())
for _ in range(n):
command = list(sys.stdin.readline().split())
if command[0] == "push":
queue.append(command[1])
elif command[0] == "pop":
print(queue.pop(0) if queue else -1)
elif command[0] == "size":
print(len(queue))
elif command[0] == "empty":
print(0 if queue else 1)
elif command[0] == "front":
print(queue[0] if queue else -1)
else: #back
print(queue[-1] if queue else -1)