Skip to content

Commit 45e4c9a

Browse files
Add files via upload
1 parent 7098307 commit 45e4c9a

File tree

2 files changed

+95
-0
lines changed

2 files changed

+95
-0
lines changed

LEVEL2/Day1/MakePrimeNumber.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# 26. 소수 만들기
2+
3+
'''에라토스테네스의 체(거의 다 내가 풀었는데...)'''
4+
import math
5+
from itertools import combinations
6+
7+
def is_prime_number(n):
8+
arr = [True for i in range(n + 1)]
9+
10+
for i in range(2, int(math.sqrt(n)) + 1):
11+
if n % i == 0:
12+
return False
13+
return True
14+
15+
16+
def solution(nums):
17+
answer = 0
18+
19+
comb_lst = list(combinations(nums, 3))
20+
for pair in comb_lst:
21+
sum_pair = sum(pair)
22+
if is_prime_number(sum_pair):
23+
answer += 1
24+
25+
return answer
26+
27+
nums_1 = [1, 2, 3, 4]
28+
nums_2 = [1, 2, 7, 6, 4]
29+
30+
# print(solution(nums_1))
31+
# print(solution(nums_2))
32+
33+
'''더 빠르고 좋은 풀이'''
34+
def prime_number(n):
35+
answer = 0
36+
37+
for i in range(1, int(n ** 0.5) + 1):
38+
if n % i == 0:
39+
answer += 1
40+
return 1 if answer == 1 else 0
41+
42+
def solution_best(nums):
43+
answer = sum([prime_number(sum(c)) for c in combinations(nums, 3)])
44+
45+
return answer
46+
47+
print(solution_best(nums_1))
48+
print(solution_best(nums_2))

LEVEL2/Day1/PonketMon.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# 27. 폰캣몬
2+
3+
def solution(nums):
4+
answer = 0
5+
6+
mine = [nums[0]]
7+
for one in nums:
8+
if len(mine) != len(nums) // 2:
9+
if one not in mine:
10+
mine.append(one)
11+
else:
12+
break
13+
14+
answer = len(mine)
15+
return answer
16+
17+
nums_1 = [3, 1, 2, 3]
18+
nums_2 = [3, 3, 3, 2, 2, 4]
19+
nums_3 = [3, 3, 3, 2, 2, 2]
20+
21+
# print(solution(nums_1))
22+
# print(solution(nums_2))
23+
# print(solution(nums_3))
24+
25+
'''내 풀이'''
26+
from itertools import combinations
27+
def solution_mine(nums):
28+
answer = 0
29+
30+
comb_nums = list(combinations(nums, len(nums) // 2))
31+
no_dup_comb_nums = sorted([set(item) for item in comb_nums], key=lambda x: len(x),
32+
reverse=True)
33+
answer = len(no_dup_comb_nums[0])
34+
return answer
35+
36+
# print(solution_mine(nums_1))
37+
# print(solution_mine(nums_2))
38+
# print(solution_mine(nums_3))
39+
40+
def solution_best(nums):
41+
answer = min(len(nums) // 2, len(set(nums)))
42+
43+
return answer
44+
45+
print(solution_best(nums_1))
46+
print(solution_best(nums_2))
47+
print(solution_best(nums_3))

0 commit comments

Comments
 (0)