Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
ssw6750 committed Sep 28, 2022
1 parent c1db0b2 commit 3f7de6c
Show file tree
Hide file tree
Showing 2 changed files with 200 additions and 0 deletions.
124 changes: 124 additions & 0 deletions 카카오/1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,124 @@
from collections import defaultdict
from datetime import datetime

def F(day, t, term, today):
tmp = term[t]
tmp = int(tmp) * 28
print(tmp)
y, m, d = day.split(".")
y1, m1, d1 = today.split(".")
dd = int(m)*28 + int(d)
td = int(m1)*28 + int(d1)

if y == y1:
deff = td - dd
else:
deff = (int(y1) -int(y) - 1) * (28 * 12) + td + (28 * 12) - dd

print(deff)
return (tmp <= deff)




def solution(today, terms, privacies):
answer = []

term = defaultdict()
for i in terms:
a, b = i.split(" ")
term[a] = b

print(term)

for i in range(len(privacies)):
day, t = privacies[i].split(" ")
if F(day, t, term, today):
answer.append(i+1)

return answer

def solution(cap, n, deliveries, pickups):
answer = -1
cnt = 0

mx = n-1
while True:
if sum(deliveries) + sum(pickups) == 0: break
c = cap
d = 0
for i in range(mx, -1, -1):
if deliveries[i] > 0:
if c - deliveries[i] >= 0:
if i+1 > d:
d = i+1
c -= deliveries[i]
deliveries[i] = 0

for i in range(mx, -1, -1):
if pickups[i] > 0:
if c + pickups[i] <= cap:
if i+1 > d:
d = i+1
c += pickups[i]
pickups[i] = 0
cnt+= d

answer = cnt*2


return answer

def solution(cap, n, deliveries, pickups):
answer = -1
ar = []
for i in range(n):
ar.append([deliveries[i], pickups[i]])

print(ar)
return answer





def F(cap, idx):
if idx < 0: break
if deliveries[idx] < 0:
F(cap, idx-1)
if cap - deliveries[idx] >= 0:
deliveries[idx] = 0
F(cap -= deliveries[idx], idx-1)
else:
F(cap, idx-1)

def solution(cap, n, deliveries, pickups):
answer = -1
while True:
tmp = []
F(cap, )


return answer


def solution(users, emoticons):
answer = []
dc = [10, 20, 30, 40]
mx_plus_user = 0
emo_sum = sum(emoticons)

for i in user:
d = i[0]
if d%10 == 0:
d = d//10 -1
else:
d = int(d//10) - 1
if emo_sum * 0.6 <i[1]: # 가장 많이 할인했을때 일정가격 보다 작으면 -> 절대 이모티콘 플러스를 사지 않음
continue
else: #



return answer

76 changes: 76 additions & 0 deletions 카카오/6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
dy = [0, 0, -1, 1]
dx = [1, -1, 0, 0]

def F1(r, c, t, v, mt, visited):
if visited[r][c] == 0:
if mt[r][c] == t:
visited[r][c] = 1
mt[r][c] = v
for i in range(4):
y = r+dy[i]
x = c+dx[i]
if 0 < y < len(visited) and 0 < x < len(visited[0]):
F1(y, x, t, v, mt, visited)
else: return


def solution(commands):
answer = []
mxr = 0
mxc = 0
mt = [["" for _ in range(51)] for _ in range(51)]
for i in commands:
visited = [[0 for _ in range(mxr+1)] for _ in range(mxc+1)]
tmp = list(map(str, i.split(" ")))
if tmp[0] == "UPDATE":
if len(tmp) == 4:
i1, j1, v= int(tmp[1]), int(tmp[2]), tmp[3]
t= mt[i1][j1]
if mxr < int(tmp[1]):
mxr = int(tmp[1])
if mxc < int(tmp[2]):
mxc = int(tmp[2])
if t == "":
mt[i1][j1] = v
else:
F1(i1, j1, mt[i1][j1], v, mt, visited)
else:
t = tmp[1]
v = tmp[2]
for i1 in range(mxr+1):
for j1 in range(mxc+1):
if mt[i1][j1] == t:
F1(i1, j1, t, v, mt, visited)
break

if tmp[0] == "MERGE":
r1, c1, r2, c2 = int(tmp[1]), int(tmp[2]), int(tmp[3]), int(tmp[4])
v = mt[r1][c1]
t = mt[r2][c2]
if t == "":
mt[r2][c2] = v
else:
for i2 in range(mxr+1):
for j2 in range(mxc+1):
if mt[i2][j2] == t:
mt[i2][j2] = v

if tmp[0] == "UNMERGE":
r, c = int(tmp[1]), int(tmp[2])
v = mt[r][c]
for i3 in range(mxr+1):
for j3 in range(mxc+1):
if mt[i3][j3] == v:
if (i3 != r or j3 != c) :
mt[i3][j3] = ''

if tmp[0] == "PRINT":
r, c = int(tmp[1]), int(tmp[2])
if mt[r][c] == '':
answer.append("EMPTY")
else:
answer.append(mt[r][c])



return answer

0 comments on commit 3f7de6c

Please sign in to comment.