Skip to content

Commit 0831368

Browse files
Add files via upload
1 parent f4e1cd1 commit 0831368

File tree

3 files changed

+162
-0
lines changed

3 files changed

+162
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# 30. 로또의 최고 순위와 최저 순위
2+
3+
'''스스로 풀었지만 비효율적인 풀이'''
4+
def solution(lottos, win_nums):
5+
answer = [7, 7]
6+
7+
lottos.sort()
8+
win_nums.sort()
9+
10+
for i in lottos:
11+
if i == 0:
12+
answer[0] -= 1
13+
else:
14+
for j in win_nums:
15+
if i == j:
16+
answer[0] -= 1
17+
answer[1] -= 1
18+
19+
if answer[0] == 7:
20+
answer[0] -= 1
21+
if answer[1] == 7:
22+
answer[1] -= 1
23+
24+
return answer
25+
26+
lottos_1 = [44, 1, 0, 0, 31, 25]
27+
lottos_2 = [0, 0, 0, 0, 0, 0]
28+
lottos_3 = [45, 4, 35, 20, 3, 9]
29+
30+
win_nums_1 = [31, 10, 45, 1, 6, 19]
31+
win_nums_2 = [38, 19, 20, 40, 15, 25]
32+
win_nums_3 = [20, 9, 3, 45, 4, 35]
33+
34+
# print(solution(lottos_1, win_nums_1))
35+
# print(solution(lottos_2, win_nums_2))
36+
# print(solution(lottos_3, win_nums_3))
37+
38+
def solution_best(lottos, win_nums):
39+
answer = [6, 6, 5, 4, 3, 2, 1]
40+
41+
cnt_0 = lottos.count(0)
42+
match = 0
43+
for x in win_nums:
44+
if x in lottos:
45+
match += 1
46+
return [answer[cnt_0 + match], answer[match]]
47+
48+
print(solution_best(lottos_1, win_nums_1))
49+
print(solution_best(lottos_2, win_nums_2))
50+
print(solution_best(lottos_3, win_nums_3))

LEVEL2/Day2/FailRate.py

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# 38. 실패율
2+
3+
# 내 풀이
4+
def solution(N, stages):
5+
answer = []
6+
7+
# 실패율 딕셔너리
8+
result = {}
9+
10+
# 도달한 플레이어 수 ... 매 단계마다 바뀔 수 있다
11+
denominator = len(stages)
12+
13+
for stage in range(1, N + 1):
14+
if denominator != 0:
15+
fail_cnt = stages.count(stage)
16+
result[stage] = fail_cnt / denominator
17+
denominator -= fail_cnt
18+
else:
19+
result[stage] = 0
20+
21+
answer = sorted(result, key=lambda x: result[x],
22+
reverse = True)
23+
return answer
24+
25+
N_1 = 5
26+
N_2 = 4
27+
28+
stages_1 = [2, 1, 2, 6, 2, 4, 3, 3]
29+
stages_2 = [4, 4, 4, 4, 4]
30+
31+
print(solution(N_1, stages_1))
32+
print(solution(N_2, stages_2))
33+
34+
# 이중 리스트 풀이 ... [2, 1, 2, 6, 2, 4, 3, 3] -> [[1], [2, 2, 2], [3, 3], [4], [6]]
35+
from collections import Counter
36+
def solution_mine(N, stages):
37+
answer = []
38+
39+
# {'1' : 2, '2' : 3, ... }
40+
result = {str(i): 0 for i in range(N + 1)}
41+
for i in stages:
42+
if str(i) in result.keys():
43+
result[str(i)] += 1
44+
else:
45+
if i == N + 1:
46+
result[str(0)] += 1
47+
48+
# 마지막까지 성공한 사람
49+
success = {'0': result['0']}
50+
del (result['0'])
51+
52+
denominator = len(stages)
53+
failing_rate_lst = []
54+
for stage, cnt in result.items():
55+
failing_rate = 0
56+
if cnt != 0:
57+
failing_rate = cnt / denominator
58+
failing_rate_lst.append(failing_rate)
59+
denominator -= cnt
60+
else:
61+
failing_rate = 0
62+
failing_rate_lst.append(failing_rate)
63+
64+
sort_failing_rate_lst = sorted(failing_rate_lst,
65+
reverse=True)
66+
answer = [sort_failing_rate_lst.index(i) + 1
67+
for i in failing_rate_lst]
68+
return answer
69+
70+
# print(solution_mine(N_1, stages_1))
71+
# print(solution_mine(N_2, stages_2))
72+
73+
def solution_best(N, stages):
74+
answer = []
75+
76+
# 실패율 딕셔너리
77+
result = {}
78+
79+
# 스테이지에 도달한 플레이어 수 = success_players / denominator : 분모
80+
denominator = len(stages)
81+
82+
for stage in range(1, N + 1):
83+
if denominator != 0:
84+
failing_count = stages.count(stage)
85+
result[stage] = failing_count / denominator
86+
denominator -= failing_count
87+
else:
88+
result[stage] = 0
89+
answer = sorted(result, key=lambda x: result[x], reverse=True)
90+
return answer
91+
#
92+
# print(solution_best(N_1, stages_1))
93+
# print(solution_best(N_2, stages_2))

LEVEL2/Day2/PlusMinusAdd.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# 25. 음양 더하기
2+
3+
def solution(absolutes, signs):
4+
answer = 0
5+
6+
sum_lst = [absolutes[i] if signs[i] == True else -absolutes[i]
7+
for i in range(len(signs))]
8+
9+
answer = sum(sum_lst)
10+
return answer
11+
12+
absolutes_1 = [4, 7, 12]
13+
absolutes_2 = [1, 2, 3]
14+
15+
signs_1 = [True, False, True]
16+
signs_2 = [False, False, True]
17+
18+
print(solution(absolutes_1, signs_1))
19+
print(solution(absolutes_2, signs_2))

0 commit comments

Comments
 (0)