2022年4月26日 星期二

最大和

 ins = '''

4 3
6 3 2
2 7 9
4 7 1
9 5 3
'''
a = ins.strip().split('\n')
a.pop(0)
# print(a)
d = []
for i in a:
    t = [int(j) for j in i.split()]
    d.append(t)
# print(d)
s = 0
for i in d:
    s+=max(i)
print(s)
b=[]
for i in d:
    if s%max(i)==0:
        b.append(str(max(i)))
b = ''.join(b)
if b == '':
    print(-1)
else:
    print(b)

線段覆蓋長度

 d = [0 for i in range(1000+1)]

instr = '''5

160 180

150 200

280 300

300 330

190 210'''

d1 = [i for i in instr.strip().split()]

n = int(d1[0])

# d1.remove(d1[0])

d1.pop(0)

d1 = [int(i) for i in d1]

d2 = []

for i in range(0,len(d1),2):

    t = [d1[i],d1[i+1]]

    d2.append(t)


for i in d2:

    a,b = i[0],i[1]

    for j in range(a,b+1):

        d[j] = 1


d = [str(i) for i in d]

d = ''.join(d)

d = d.split('0')

d = [i for i in d if i!='']


s = 0

for i in d:

    t = i.split('2')

    t = [i for i in t if i!='']

    p = [i.count('1')-1 for i in t]

    s+=sum(p)

print(s)

2022年4月25日 星期一

矩陣轉換

 def tt(a):

    return a[::-1]

# a = [[1,1],

# [1,3],

# [2,1],

# [5,6],

# ]

a = [[1,1,8],

[1,3,7],

[2,1,6],

[5,6,5],

]

# a = [[1,1],

# [1,3],

# [2,1],

# ]

print(a)

cur = tt(a)

print(cur)


def rr(a):

    m = len(a[0])

    n = len(a)

    b =[ [0 for i in range(n)] for j in range(m)]

    

    for i in range(m):

        for j in range(n):

            b[i][j] = a[n-1-j][i]

    return b

    

cur = rr(cur)

print(cur)

cur = rr(cur)

print(cur)

成績指標

 import copy

n=10

a ='0 11 22 33 44 55 99 77 88 66'

a =[int(i) for i in  a.split(' ')]

print(a)

p = [i for i in a if i>=60]

np = [i for i in a if i<60]

b = a.copy()

b.sort()

print(b)

print(a)

print(p[0],np[-1])

定時K彈

 # n = 5

# m = 2

# k = 4


# a = [i+1 for i in range(5)]

# # print(a)


# i = 1

# while (len(a)>1):

#     t = a.pop(0)

#     # print(t)

#     if i%2!=0:

#         a.append(t)

#         # print(a)

#     i+=1

# print(a[0])


n = 5

m = 2

k = 4


a = [i+1 for i in range(10)]

# print(a)


i = 1

while (k>=1):

    t = a.pop(0)

    # print(t)

    if i%2!=0:

        a.append(t)

        # print(a)

    else:

        k-=1

    i+=1

print(a[0])

2022年4月21日 星期四

插入排序學習

 d = [int(i) for i in '3,5,1,4,2,7,9,6'.split(',')]

n = len(d)
print(d)

# right turn
# t = d[n-1]
# i = n-1
# while i>0:
#     d[i]=d[i-1]
#     i-=1
# d[0]=t
# print(d)

# left turn
# t = d[0]
# i = 0
# while i <n-1:
#     d[i]=d[i+1]
#     i+=1
# print(d)
# d[n-1]=t

# insert sort
# for j in range(1,n):
#     i = 0
#     while d[i] < d[j]:
#         i+=1
#     t =d[j]
#     d.remove(d[j])
#     d.insert(i,t)
# print(d)

# insert .. to right position
d.sort()
print(d)

t = 0
i = 0
if t>d[n-1]:
    d.append(t)
else:
    while d[i]<t and i<n:
        i+=1
    d.insert(i,t)
print(d)

2022年4月19日 星期二

凱撒密碼

 indata = 'ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ'

outdata = indata[3:29]

print(outdata)

rd = {}

for i in range(26):

    rd[indata[i]] = outdata[i]

print(rd)


a = 'HELLO'

for i in a:

    print(rd[i],end='')