레이블이 Python인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Python인 게시물을 표시합니다. 모든 게시물 표시

2019년 11월 17일 일요일

[Python 3] HackerRank Forming a Magic Square

Test url: https://www.hackerrank.com/challenges/magic-square-forming/problem



My Answer:


#!/bin/python3

import math
import os
import random
import re
import sys

def reverseTopBottom(mtx):
result = [[0]*3 for i in range(3)]

for i in range(3):
for j in range(3):
result[i][j] = mtx[2-i][j]
return result

def reverseLeftRight(mtx):
result = [[0]*3 for i in range(3)]

for i in range(3):
for j in range(3):
result[i][2-j] = mtx[i][j]

return result

def rotate90(mtx):
result = [[0]*3 for i in range(3)]

result[0][0] = mtx[2][0]
result[0][1] = mtx[1][0]
result[0][2] = mtx[0][0]
result[1][0] = mtx[2][1]
result[1][1] = mtx[1][1]
result[1][2] = mtx[0][1]
result[2][0] = mtx[2][2]
result[2][1] = mtx[1][2]
result[2][2] = mtx[0][2]

return result

def calculate(s, mtx):
result = 0
for i in range(3):
for j in range(3):
result += abs(mtx[i][j] - s[i][j])
return result

# Complete the formingMagicSquare function below.
def formingMagicSquare(s):
result = 0
minResult = 100
mtx = [[4,9,2],[3,5,7],[8,1,6]]
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = rotate90(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = rotate90(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = rotate90(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = reverseLeftRight(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = rotate90(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = rotate90(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

mtx = rotate90(mtx)
result = calculate(s, mtx)
if(minResult > result):
minResult = result

return minResult


if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

s = []

for _ in range(3):
s.append(list(map(int, input().rstrip().split())))

result = formingMagicSquare(s)

fptr.write(str(result) + '\n')

fptr.close()

[Python 3] HackerRank Max Min

Test url: https://www.hackerrank.com/challenges/angry-children/problem


My Answer:

#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the maxMin function below.
def maxMin(k, arr):
cal = 0
min = 1000000000
arr.sort()

for i in range(len(arr)-k+1):
cal = arr[i+k-1] - arr[i]
if(cal < min):
min = cal
return min

if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

n = int(input())

k = int(input())

arr = []

for _ in range(n):
arr_item = int(input())
arr.append(arr_item)

result = maxMin(k, arr)

fptr.write(str(result) + '\n')

fptr.close()

[Python 3] HackerRank Non-Divisible Subset

Test url: https://www.hackerrank.com/challenges/non-divisible-subset/problem


My Answer:



#!/bin/python3

import math
import os
import random
import re
import sys

#
# Complete the 'nonDivisibleSubset' function below.
#
# The function is expected to return an INTEGER.
# The function accepts following parameters:
# 1. INTEGER k
# 2. INTEGER_ARRAY s
#

def nonDivisibleSubset(k, s):
# Write your code here
result = 0
arr = [0] * k
half_idx = k // 2 + k % 2

for i in range(len(s)):
seed = s[i] % k
arr[seed] += 1

for i in range(0, half_idx):
if i == 0:
if(arr[i] > 0):
result += 1
continue

if arr[i] > arr[k-i]:
result += arr[i]
else:
result += arr[k-i]

if k % 2 == 0 and arr[half_idx] > 0:
result += 1

return result


if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

first_multiple_input = input().rstrip().split()

n = int(first_multiple_input[0])

k = int(first_multiple_input[1])

s = list(map(int, input().rstrip().split()))

result = nonDivisibleSubset(k, s)

fptr.write(str(result) + '\n')

fptr.close()

2019년 11월 15일 금요일

[Python 3] HackerRank Encryption

Test URL: https://www.hackerrank.com/challenges/encryption/problem



My Answer:


#!/bin/python3

import math
import os
import random
import re
import sys

# Complete the encryption function below.
def encryption(s):
result = ''
row = 0
col = 0

myStr = s.replace(' ','')
str_len = len(myStr)
str_len_sqrt = math.sqrt(str_len)

if(int(str_len_sqrt) == str_len_sqrt):
row = col = int(str_len_sqrt)
else:
row = int(str_len_sqrt)
col = row + 1

for i in range(col):
for j in range(i,str_len,col):
if(myStr[j]):
result += myStr[j]
result += ' '

return result


if __name__ == '__main__':
fptr = open(os.environ['OUTPUT_PATH'], 'w')

s = input()

result = encryption(s)

fptr.write(result) # removed (+ '\n')

fptr.close()

2019년 11월 5일 화요일

Python Study) 개발 환경 세팅

1. VScode 설치
 사용 버전: VSCodeUserSetup-x64-1.39.2

2. VSCode 실행 후 Extension 탭 클릭

3. Python 검색하여 설치