sCorrect에 맞은 점수를 넣기
sCorrect를 for문을 돌면서 제일 큰점수만 들어가게 세팅
def solution(answers):
answer = []
sAnswer = [[1, 2, 3, 4, 5], [2, 1, 2, 3, 2, 4, 2, 5], [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]]
sLength = [5, 8, 10]
sCorrect = [0,0,0]
for idx, a in enumerate(answers):
for sIdx in range(3):
if sAnswer[sIdx][idx%sLength[sIdx]]==a:
sCorrect[sIdx] += 1
maxVal=0
for number, s in enumerate(sCorrect,1):
if maxVal < s:
maxVal = s
answer = [number]
elif maxVal == s:
answer.append(number)
return answer
findNum : 가능한 숫자조합을 찾는다
가능한 숫자들 중 소수만 real_answer에 넣어 답으로 리턴한다
def solution(numbers):
answer = []
real_answer = set()
def findNum(numbers, num, start):
if start == len(numbers):
if len(num) != 0 and num !=['1'] and num !=['0']:
answer.append(num)
else:
findNum(numbers, num, start + 1)
num_copy = []
for x in num:
num_copy.append(numbers[start] + x)
for l in range(1, len(x)):
num_copy.append(x[:l] + numbers[start] + x[l:])
num_copy.append(x + numbers[start])
else:
num_copy.append(numbers[start])
findNum(numbers, num_copy, start + 1)
findNum(numbers, [], 0)
for x in answer:
for num in x:
test = 3
if int(num) ==2:
real_answer.add(int(num))
continue
elif int(num)<2 or int(num)%2 == 0:
continue
else:
while test < int(num):
if int(num) % test == 0:
break
else:
test += 2
if test == int(num):
real_answer.add(int(num))
return len(real_answer)
from itertools import permutations
def solution(n):
a = set()
for i in range(len(n)):
a |= set(map(int, map("".join, permutations(list(n), i + 1))))
a -= set(range(0, 2))
for i in range(2, int(max(a) ** 0.5) + 1):
a -= set(range(i * 2, max(a) + 1, i))
return len(a)
(yellow가로+2)(yellow세로+2) = brown+yellow 임을 활용한다
def solution(brown, yellow):
answer = []
total = brown + yellow
for x in range(1,total):
if not yellow % x:
col = int(yellow/x)
if (col+2) * (x+2) ==total:
return [max(x+2, col+2), min(x+2, col+2)]