1. 程式人生 > >周常:HackerRank 演算法題。(10-29~11.4)

周常:HackerRank 演算法題。(10-29~11.4)

 致力於寫出最簡短的answer:

Diagonal Difference

n = int(input())
arr = []
for _ in range(n):
    arr.append(list(map(int, input().rstrip().split())))
ans = 0
for i in range(n):
    ans += arr[i][i]-arr[i][n-i-1]
print(ans if(ans>0) else -ans)

Plus Minus 

n = int(input())
arr = list(map(int, input().rstrip().split()))
a=b=c=0
for i in range(n): 
    if(arr[i]>0):a+=1
    elif(arr[i]==0):c+=1
    else:b+=1
print (format(a/n,'.6f'),format(b/n,'.6f'),format(c/n,'.6f'),sep='\n',end='\n')

 Staircase

n = int(input())
for i in range(n):
    print((" ")*(n-i-1)+("#")*(i+1))

 Mini-Max Sum

arr = list(map(int, input().rstrip().split()))
print(sum(arr)-max(arr),sum(arr)-min(arr),sep=' ')

Birthday Cake Candles 

ar_count = int(input())
ar = list(map(int, input().rstrip().split()))
print(ar.count(max(ar)))

Time Conversion

s = input()
s =list(str(s))
if(s[8]=='P'):
    if((int(s[0])==1 and  int(s[1])!=2)or int(s[1])>=8):
        s[0]='2'
        s[1]=str(int(s[1])+2)
    elif(int(s[0])==1 and int(s[1])==2):
        None
    else:
        s[0]='1'
        s[1]=str(int(s[1])+2)       
else:
    if(int(s[0])==1 and int(s[1])==2):
        s[0]='0'
        s[1]='0'

print("".join( i for i in s[:8]))

##別人寫的
time = input().strip()
h, m, s = map(int, time[:-2].split(':'))
p = time[-2:]
h = h % 12 + (p.upper() == 'PM') * 12
print(('%02d:%02d:%02d') % (h, m, s))

 Max Min

def maxMin(k, arr):
    arr.sort()
    minn =1e9
    for i in range(n-k+1):
        minn =min(minn,arr[i+k-1]-arr[i])
    return minn