programing/Algorithm
-
[Programmers] 124 나라의 숫자programing/Algorithm 2021. 4. 18. 22:54
124 나라의 숫자 연습 문제 level 2 풀이 이 문제가 제일 짜증나는 점은, 문제의 조건이 자연수만 있다는 점이다. 일반적 진법에는 0을 포함하기 때문에 0, 1, 2, 10, 11, 12, 20, ... 이런식으로 진행되는 반면에, 문제는 1, 2, 4, 11, 12, 14, 21, ... 이런식으로 진행된다는 점이 까다롭다. conversion = { 0: 4, 1: 1, 2: 2, 3: 4, } def getNum(decimal, _str): if (decimal
-
[Programmers] [1차] 다트 게임programing/Algorithm 2021. 4. 11. 19:27
[1차] 다트 게임 2018 KAKAO BLIND RECRUITMENT level 1 python 3 import re score_table = { 'S': 1, 'D': 2, 'T': 3 } option_table = { '*': 2, '#': -1, '': 1, } def getRounds(_str): pattern = re.compile(r'(\d+)([SDT])([*#]?)') return pattern.findall(_str) def calculateScore(_rounds): scoreList = [0] * len(_rounds) for i, _round in enumerate(_rounds): [baseScore, exponent, option] = _round if option == '*'..
-
[Programmers] 비밀지도programing/Algorithm 2021. 4. 4. 21:33
비밀지도 2018 KAKAO BLIND RECRUITMENT level 1 python3 def getBinary(n, num): _num = num _bin = [0] * n for i in range(n): remainder = _num % 2 quotient = _num // 2 _bin[n - 1 - i] = remainder _num = quotient return _bin def getMap(_bin): return ''.join(list(map(lambda x: '#' if x > 0 else ' ', _bin))) def solution(n, arr1, arr2): answer = [] for row in range(n): _bitOr = arr1[row] | arr2[row] _bin =..
-
[Programmers] 실패율programing/Algorithm 2021. 3. 28. 21:34
실패율 2019 KAKAO BLIND RECRUITMENT level 1 python3 from itertools import groupby def solution(N, stages): failRatioList = [(i+1, 0) for i in range(N)] users = len(stages) fail = 0 stages.sort() for (stage, group) in groupby(stages): if stage > N: break listGroup = list(group) failUserNum = len(listGroup) print(stage, listGroup, len(listGroup)) failRatioList[stage - 1] = (stage, failUserNum / users..
-
[Programmers] 소수 만들기programing/Algorithm 2021. 3. 27. 21:27
소수 만들기 Summer/Winter Coding(~2018) level 1 python 3 from itertools import combinations import math; def is_prime(n): # n의 최대 약수가 sqrt(n) 이하이므로 i=sqrt(n)까지 검사 m = int(math.sqrt(n)) divisors = [i for i in range(1, m + 1) if n % i == 0] return len(divisors) == 1 def solution(nums): combi = list(combinations(nums, 3)) enables = list(filter(lambda com: is_prime(com[0] + com[1] + com[2]), combi)) retu..
-
[Programmers] 행렬의 덧셈programing/Algorithm 2021. 3. 27. 20:07
행렬의 덧셈 level 1 연습문제 python3 def solution(a, b): return [[a[m][n]+b[m][n] for n in range(len(a[0]))] for m in range(len(a))] list comprehension을 이용. 두 행렬의 크기가 같기 때문에 가능한 방법. import numpy as np def sumMatrix(A,B): A = np.array(A) B = np.array(B) answer = A+B return answer.tolist() 혹은 numpy를 이용해도 된다.