In [36]:
arr1 = [9,20,28,18,11]
arr2 = [30,1,21,17,28]
def get_map(arr):
map_arr = []
for i in arr:
map_num = bin(i)[2:]
if len(arr1)-len(map_num) != 0:
for l in range(len(arr1)-len(map_num)):
map_num = "0" + map_num
map_arr.append(map_num)
else:
map_arr.append(map_num)
return map_arr
def secret_map(map1, map2):
secret_map = []
for t in zip(map1,map2):
secret_row = ""
for j in range(len(map1)):
if int(t[0][j])+int(t[1][j]) > 0:
secret_row += "#"
else:
secret_row += " "
secret_map.append(secret_row)
return secret_map
map1 = get_map(arr1)
map2 = get_map(arr2)
secret_map(map1,map2)
Out[36]:
In [113]:
def S(num):
return num**1
def D(num):
return num**2
def T(num):
return num**3
def dart_game(dart):
score_list = ["S","D","T"]
sang_list = ["*","#"]
num=[]
score=[]
for i in dart:
if i.isdigit():
num.append(i)
if i in score_list:
score.append(i)
if i in sang_list:
sang.append(i)
result = []
for idx in range(len(num)):
if score[idx] == "S":
result.append(S(int(num[idx])))
if score[idx] == "D":
result.append(D(int(num[idx])))
if score[idx] == "T":
result.append(T(int(num[idx])))
for i in range(len(sang)):
bonus = sang.pop(0)
bodex = dart.index(bonus)
if bonus == "*":
if bodex//2-1 != 0:
result[bodex//2-1] = result[bodex//2-1]*2
result[bodex//2-2] = result[bodex//2-2]*2
else:
result[bodex//2-1] = result[bodex//2-1]*2
else:
result[bodex//2-1] = result[bodex//2-1]*(-1)
dart = dart.replace("*","x",1)
return sum(result)
dart_game("1D2S3T*")
Out[113]:
In [137]:
a = ["Jeju","Pangyo","Seoul","Jeju","Pangyo","Seoul","Jeju","Pangyo","Seoul"]
size = 3
def lru_cache(cities, size):
cache = a[:size]
runtime = 0
runtime += size*5
rest = a[3:]
for i in rest:
if i not in cache:
cache.append(i)
cache.pop(0)
runtime += 5
else:
runtime += 1
return runtime
lru_cache(a, size)
Out[137]: