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
2 changes: 2 additions & 0 deletions request_test/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
print("hello")
print("1234")
1 change: 1 addition & 0 deletions week1/1021회전하는큐/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## 안녕하세요
20 changes: 20 additions & 0 deletions week1/1021회전하는큐/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import sys
from collections import deque

n, m = map(int, sys.stdin.readline().split())
to_pop_list = list(map(int, sys.stdin.readline().split()))
rotating_queue = deque([i + 1 for i in range(n)])
cnt = 0
for i in to_pop_list:
while True:
if rotating_queue.index(i) == 0:
rotating_queue.popleft()
break
elif rotating_queue.index(i) <= len(rotating_queue) - rotating_queue.index(i):
rotating_queue.append(rotating_queue.popleft())
cnt += 1
else:
rotating_queue.appendleft(rotating_queue.pop())
cnt += 1

print(cnt)
26 changes: 26 additions & 0 deletions week1/10828스텍/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import sys

n = int(sys.stdin.readline())
stack = []
for i in range(n):
inp = list(map(str, sys.stdin.readline().rstrip().split()))
if inp[0] == "push":
stack.append(inp[1])
elif inp[0] == "pop":
if not stack:
print(-1)
continue
print(stack.pop())
elif inp[0] == "size":
print(len(stack))
elif inp[0] == "empty":
if not stack:
print(1)
continue
print(0)
elif inp[0] == "top":
if not stack:
print(-1)
continue
print(stack[-1])

32 changes: 32 additions & 0 deletions week1/10845큐/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import sys
from collections import deque

n = int(sys.stdin.readline())
queue = deque([])
for i in range(n):
inp = list(map(str, sys.stdin.readline().rstrip().split()))
if inp[0] == "push":
queue.append(int(inp[1]))
elif inp[0] == "pop":
if not queue:
print(-1)
else:
print(queue.popleft())
elif inp[0] == "size":
print(len(queue))
elif inp[0] == "empty":
if not queue:
print(1)

else:
print(0)
elif inp[0] == "front":
if not queue:
print(-1)
else:
print(queue[0])
elif inp[0] == "back":
if not queue:
print(-1)
else:
print(queue[-1])
39 changes: 39 additions & 0 deletions week1/10866덱/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
import sys
from collections import deque

d = deque()

n = int(sys.stdin.readline())
for i in range(n):
order = list(map(str, sys.stdin.readline().rstrip().split()))
if order[0] == "push_front":
d.appendleft(int(order[1]))
elif order[0] == "push_back":
d.append(int(order[1]))
elif order[0] == "pop_front":
try:
print(d.popleft())
except IndexError:
print(-1)
elif order[0] == "pop_back":
try:
print(d.pop())
except IndexError:
print(-1)
elif order[0] == "size":
print(len(d))
elif order[0] == "empty":
if d:
print(0)
else:
print(1)
elif order[0] == "front":
try:
print(d[0])
except IndexError:
print(-1)
elif order[0] == "back":
try:
print(d[-1])
except IndexError:
print(-1)
9 changes: 9 additions & 0 deletions week1/10870피보나치수5/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
N = int(input())

def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)


print(fibonacci(N))
15 changes: 15 additions & 0 deletions week1/1110더하기사이클/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
num = int(input())
check = num
temp = 0
count = 0
new_num = 0

while True:
temp = (num//10) + (num%10)
new_num =(num%10)*10 + temp%10
count += 1
num = new_num
if num == check:
break

print(count)
20 changes: 20 additions & 0 deletions week1/1158요세푸스문제/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import sys
from collections import deque

n, k =map(int, sys.stdin.readline().split())
queue = deque(i + 1 for i in range(n))
res = []
i = 0
while queue:
if i == k - 1:
res.append(queue.popleft())
i = 0
continue
queue.append(queue.popleft())
i += 1
print("<", end="")
for i in res:
if i == res[-1]:
print("%d>" % i)
continue
print(i, end=", ")
15 changes: 15 additions & 0 deletions week1/17910jointAttack/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import sys
from fractions import Fraction


n = int(sys.stdin.readline())
arr = list(map(int, sys.stdin.readline().split()))

def joinAttack(i):
try:
return arr[i] + Fraction(1, joinAttack(i + 1))
except IndexError:
return arr[i]


print(joinAttack(0))
20 changes: 20 additions & 0 deletions week1/1934최소공배수/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import sys

def gcf(x, y):
while y:
x, y = y, x % y

return x

def lcm(x, y):
return x * y // gcf(x, y)


n = int(sys.stdin.readline())
for i in range(n):
a, b = map(int, sys.stdin.readline().split())
print(lcm(a, b))




25 changes: 25 additions & 0 deletions week1/1977완전제곱수/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import sys
import math

m = int(sys.stdin.readline())
n = int(sys.stdin.readline())

arr = [0] * 10001
for i in range(1, 101):
arr[i * i] = True

sum_ = 0
min_ = 0
for num in range(m, n + 1):
if arr[num]:
sum_ += num
if not min_:
min_ = num

if min_:
print(sum_)
print(min_)
else:
print(-1)


42 changes: 42 additions & 0 deletions week1/20301반전요세푸스/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import sys
from collections import deque

n, k, m = map(int, sys.stdin.readline().split())
queue = deque([i + 1 for i in range(n)])
# 1 2 3 4 5 6 7
josephus = []
i = 1
cnt = 0
reverse_rotate = False
while queue:
if reverse_rotate:
x = queue.pop()
if i == k:
josephus.append(x)
cnt += 1
i = 1
else:
queue.appendleft(x)
i += 1
else:
x = queue.popleft()
if i == k:
josephus.append(x)
cnt += 1
i = 1
else:
queue.append(x)
i += 1
if cnt == m:
cnt = 0
if reverse_rotate:
reverse_rotate = False
else:
reverse_rotate = True

for i in josephus:
print(i)


# 1 2 3 4 5
# 2
16 changes: 16 additions & 0 deletions week1/3986좋은단어/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import sys

n = int(sys.stdin.readline())
cnt = 0
for _ in range(n):
inp = sys.stdin.readline().rstrip()
stack = []
for i in range(len(inp)):
if stack and stack[-1] == inp[i]:
stack.pop()
else:
stack.append(inp[i])
if not stack:
cnt += 1

print(cnt)
21 changes: 21 additions & 0 deletions week1/9012괄호/solution.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import sys

T = int(sys.stdin.readline())
ps_list = []
output_list = []
for i in range(T):
ps_list.append(sys.stdin.readline().strip())


for ps in ps_list:
i = 0
while i < 50:
ps = ps.replace("()", "")
i += 1
if ps == '':
output_list.append("YES")
continue
else:
output_list.append("NO")
for output in output_list:
print(output)