# 소수를 판별하는 함수
def is_prime_number(x):
if x < 2:
return False
for i in range(2,x):
if x % i == 0:
return False
else:
return True
def solution(numbers):
from itertools import permutations
answer = []
nums = []
score = 0
for i in range(1, len(numbers)+1):
# [['0', '1'], ['01', '10', '11'], ['110', '011', '101']]
nums.append(list(set(map("".join,permutations(numbers, i)))))
# [0, 1, 101, 10, 11, 110]
answer = list(set((map(int,sum(nums,[])))))
for i in range(len(answer)):
if is_prime_number(answer[i]) is True:
score += 1
return score
prime
: 정답은 맞췄지만 통과 못함..# 잘못된 함수
# 2 ~ x 사이의 모든 숫자를 비교해야하는데, else 때문에 True로 종료됨
def prime(x):
if x == 1 or x == 0:
return False
for i in range(2,x):
if x % i == 0:
return False
else:
print(x,i) # 453 2
return True
print(prime(453)) # True
# 올바른 함수
def is_prime_number(x):
if x < 2:
return False
for i in range(2, x):
if x % i == 0:
print(x,i) # 453 3
return False
return True
print(is_prime_number(453)) # False
nums.append(list(set(map("".join,permutations(numbers, i)))))
answer = list(set((map(int,sum(nums,[])))))
+
: 덧셈 연산을 통해서 새로운 리스트를 만들기 때문에 반환해서 새 리스트로 받을 변수를 만들어 주어야 함a = [7, 6, 5, 4]
b = [1, 2, 3]
result1 = a + b
result2 = b + a
print("a + b =",result1) # a + b = [7, 6, 5, 4, 1, 2, 3]
print("b + a =",result2) # b + a = [1, 2, 3, 7, 6, 5, 4]
리스트1.extend(리스트2)
: 리스트 메서드 리스트1에 리스트2를 붙이게 됨 = 리스트1 이 변경되는 방법
리스트를 합칠 때는 +
방법과 extend
방법을 구분해서 사용
a = [7, 6, 5, 4]
b = [1, 2, 3]
c = [0, 0, 0, 0, 0]
a.extend(b)
print("a : ",a) # a : [7, 6, 5, 4, 1, 2, 3]
b.extend(c)
print("b : ",b) # b : [1, 2, 3, 0, 0, 0, 0, 0]
sum(iterable, start = 0)
a = [[1,2], [3,4,5]]
b = [1,2,3]
print(sum(b)) # 6
print(sum(b,1000)) # 1006
print(sum(a,[])) # [1, 2, 3, 4, 5] = [] + [1,2]+ [3,4,5]
출처
https://blockdmask.tistory.com/558 [개발자 지망생]