본문 바로가기

HackerRank21

[HackerRank] 27. Picking Numbers def pickingNumbers(a): high = 1 low = 1 maximum = 0 for n in a: high = a.count(n+1) + a.count(n) low = a.count(n-1) + a.count(n) maximum = max(maximum, high, low) return maximum if __name__ == '__main__': n = int(input().strip()) a = list(map(int, input().rstrip().split())) result = pickingNumbers(a) print(result) 2020. 4. 7.
[HackerRank] 26. forming a magic square def CreateMagicSquare(): # 3x3 magic square 모든 경우의 수 생성 num = set(range(1, 10)) group = [] magic_square = [] for a in range(1, 10): for b in range(1, 10): for c in range(1, 10): if (a + b + c == 15) & (a != b) & (a != c) & (b != c): temp = [a, b, c] group.append(temp) for i in range(len(group)): for j in range(len(group)): for k in range(len(group)): if set(group[i] + group[j] + group[k]) == num.. 2020. 4. 7.
[HackerRank] 25. Cats and Mouse # My code def catAndMouse(a, b, c): a_distance = abs(a - c) b_distance = abs(b - c) if a_distance > b_distance: return 'Cat B' elif a_distance < b_distance: return 'Cat A' else: return 'Mouse C' if __name__ == '__main__': q = int(input()) for q_itr in range(q): abc = input().split() a = int(abc[0]) b = int(abc[1]) c = int(abc[2]) result = catAndMouse(a, b, c) print(result) 2020. 4. 7.
[HackerRank] 24. Electronics shop # My code def getMoneySpent(keyboards, drives, b): temp = -1 for keyboard in keyboards: for drive in drives: if keyboard + drive 2020. 4. 7.
[HackerRank] 20. Birthday chocolate Birthday Chocolate 초콜렛 바는 연속되어야 한다. list 의 끝 인덱스가 넘어가면 마지막 인덱스까지 추출한다.\ sum, len을 반환하여 로직을 세운다. import math import os # Complete the birthday function below. def birthday(s, d, m): count = 0 for i in range(len(s)): temp = s[i:i+m] if sum(temp) == d: if len(temp) == m: count += 1 return count if __name__ == '__main__': n = int(input().strip()) s = list(map(int, input().rstrip().split())) dm = inp.. 2020. 4. 1.
[HackerRank] 19. Bon Appétit Bon Appétit import math # Complete the bonAppetit function below. def bonAppetit(bill, k, b): half_total = sum(bill) / 2 bill.pop(k) anna_actual = sum(bill) / 2 if b == anna_actual: print('Bon Appetit') else: print(int(half_total - anna_actual)) if __name__ == '__main__': nk = input().rstrip().split() n = int(nk[0]) k = int(nk[1]) bill = list(map(int, input().rstrip().split())) b = int(input().s.. 2020. 4. 1.
[HackerRank] 18. Breaking the Records Breaking the Records import math import os import random import re import sys # Complete the breakingRecords function below. def breakingRecords(scores): max_score = scores[0] min_score = scores[0] max_count = 0 min_count = 0 for score in scores: if max_score score: min_score = score min_count += 1 return max_count, min_count if __name__.. 2020. 4. 1.
[HackerRank] 17. Counting Valleys Counting Valleys def countingValleys(n, s): height = 0 pre_height = 0 result = 0 for i in s: # 이전 높이 계산 pre_height = height # 현재 높이 계산 if i =='D': height -= 1 else: height += 1 if height == 0 and pre_height < 0: result += 1 return result def main(): n = int(input()) s = input() result = countingValleys(n, s) print(result) if __name__ == '__main__': main() 2020. 4. 1.
[HackerRank] 16. Day of the programmer Day of the Programmer #!/bin/python3 import math import os import random import re import sys # Complete the dayOfProgrammer function below. def solve(year): if (year == 1918): return '26.09.1918' elif ((year 1918) & (year%400 == 0 or ((year%4 == 0) & (year%100 != 0)))): return '12.09.%s' %year else: return '13.09.%s' %year if __name__ == '__main__': year = int(input().strip()) result = dayOfPro.. 2020. 4. 1.
[HackerRank] 14. Divisible Sum pairs # n : 배열의 길이, k : 나눌 수, arr : 배열 # output : k로 나눌 수 있는 쌍의 개수. def solution(n, k, arr): count = 0 for i in range(n): for j in range(i+1, n): if (arr[i] + arr[j]) % k == 0: count += 1 return count def main(): nk = input().split() n = int(nk[0]) k = int(nk[1]) arr = list(map(int, input().strip().split())) result = solution(n ,k, arr) print(result) if __name__ == '__main__': main() 2020. 3. 9.
[HackerRank] 13. Drawing Book def pageCount(n, p): # 처음부터 시작할 때 : 0, 2, 4... # 끝에서 시작할 때 : n // 2 # p가 있는 페이지 : p // 2 # 거리차를 구해서 min 출력 last_page = n // 2 current_page = p // 2 first_page = 0 if last_page - current_page > current_page - first_page: return current_page - first_page else: return last_page - current_page def main(): n = int(input()) p = int(input()) result = pageCount(n, p) print(result) if __name__ == '__main.. 2020. 3. 9.
[HackerRank] 12. Finding the percentage if __name__ == '__main__': n = int(input()) student_marks = {} for _ in range(n): name, *line = input().split() scores = list(map(float, line)) student_marks[name] = scores query_name = input() print('{:.2f}'.format(sum(student_marks[query_name]) / 3)) 2020. 3. 9.