λͺ©μ°¨
- 1. λ¬Έμ μ€λͺ
- 2. μ νμ¬ν
- 3. νμ΄μ¬ νμ΄
- 4. νμ΄μ¬ νμ΄ μ€λͺ
- 5. μνμ°©μ€
- 6. λλμ
1. λ¬Έμ μ€λͺ
λ―Όμλ λ‘λ λ²νΈλ₯Ό ꡬ맀νκ³ , λΉμ²¨μ΄ λμλμ§ νμΈνλ € ν©λλ€. νμ§λ§ λμμ΄ λμλ₯Ό ν΄μ μΌλΆ λ²νΈκ° μμλ³Ό μ μκ² λμλλ°, μ΄λ₯Ό 0μΌλ‘ νκΈ°νμκ³ , λΉμ²¨ λ‘λ λ²νΈ 6κ° μ리μμ μ€μ λ―Όμ°κ° μ μ λ‘λ λ²νΈ 6κ°λ λΉκ΅λ₯Ό νμ¬ λ±μλ₯Ό μμ보λλ‘ ν©λλ€. μ΄λ 0μΌλ‘ νκΈ°ν μμλ³Ό μ μλ λ²νΈ κ°μ κ²½μ°, μ΅κ³ μμ λ²νΈ, μ΅μ μμ λ²νΈλ‘μ 2κ°μ§ κ²½μ°λ‘, μ€μ λ―Όμ°κ° 0μΌλ‘ μ μ κ²½μ°κ° λͺ¨λ λ‘λ λ²νΈμ μΌμΉνλ κ²½μ°μ, κ·Έλ μ§ μμ κ²½μ°, λ―Όμ°μ λ±μμ λν΄μ μμλ³΄κ³ λ―Όμ°μ λ±μλ₯Ό μ΅κ³ μμμ μ΅μ μμλ₯Ό result κ°μΌλ‘ [3,5] μ΄λ°μμΌλ‘ λ°νν©λλ€. μ΅κ³ μμλ 3λ±, μ΅μ μμλ 5λ±μΌλ‘μ, 0μ΄ 2λ² λμμΌλ©° λ―Όμ°κ° μ΅λ 4κ°κΉμ§ λ§μ·μμ μ μ μμ΅λλ€.
2. μ νμ¬ν
- lottosλ κΈΈμ΄ 6μΈ μ μ λ°°μ΄μ λλ€.
- lottosμ λͺ¨λ μμλ 0 μ΄μ 45 μ΄νμΈ μ μμ λλ€.
- 0μ μμλ³Ό μ μλ μ«μλ₯Ό μλ―Έν©λλ€.
- 0μ μ μΈν λ€λ₯Έ μ«μλ€μ lottosμ 2κ° μ΄μ λ΄κ²¨μμ§ μμ΅λλ€.
- lottosμ μμλ€μ μ λ ¬λμ΄ μμ§ μμ μλ μμ΅λλ€.
- win_numsμ κΈΈμ΄ 6μΈ μ μ λ°°μ΄μ λλ€.
- win_numsμ λͺ¨λ μμλ 1 μ΄μ 45 μ΄νμΈ μ μμ λλ€.
- win_numsμλ κ°μ μ«μκ° 2κ° μ΄μ λ΄κ²¨μμ§ μμ΅λλ€.
- win_numsμ μμλ€μ μ λ ¬λμ΄ μμ§ μμ μλ μμ΅λλ€.
3. νμ΄μ¬ νμ΄
def solution(lottos, win_nums):
# μ§ν©μΌλ‘ λ¬Έμ νμ΄
cnt = len(set(lottos) & set(win_nums))
# 0 μ΄ μλ κ²½μ°
cnt_0 = lottos.count(0)
# μ΅κ³ λ±μμ μ΅μ λ±μ νν
# 1λ±μΌ κ²½μ° λͺ¨λ λ§μΆ°μΌ ν¨, cnt = 6 μΌ λ λ±μλ 1μ
# 2λ±μΌ κ²½μ° 5κ° λ§μΆ°μΌν¨, cnt = 5 μΌ λ λ±μλ 2μ
# 0 μ΄ μλ κ²½μ° μ΅κ³ λ±μλ 0μ κ°μλ§νΌ μ¦κ°λ¨
# 1λ±μΌ κ²½μ°, 6κ° λͺ¨λ λ§μΆλ κ²½μ°μμ, 0μ΄ 1κ° ν¬ν¨λ κ²½μ°, μΌλ° cnt = 5, 0μ΄ μλ κ²½μ° = 1, μ 체 λ§μΆ cnt = 6μΌ λ λ±μλ 1μ
# λμ²¨μΌ κ²½μ°, 6κ° μ€ 0κ° λλ 1κ°λ§ λ§μΆλ κ²½μ°μ
# μμ 쑰건μ μ’
ν©νλ©΄
max_rank = 7 - max(cnt+cnt_0,1)
min_rank = 7 - max(cnt, 1)
answer = [max_rank, min_rank]
return answer
νμ΄μ¬ νμ΄ κ²°κ³Ό
ν
μ€νΈ 1
μ
λ ₯κ° γ [44, 1, 0, 0, 31, 25], [31, 10, 45, 1, 6, 19]
κΈ°λκ° γ [3, 5]
μ€ν κ²°κ³Ό γ ν
μ€νΈλ₯Ό ν΅κ³Όνμμ΅λλ€.
ν
μ€νΈ 2
μ
λ ₯κ° γ [0, 0, 0, 0, 0, 0], [38, 19, 20, 40, 15, 25]
κΈ°λκ° γ [1, 6]
μ€ν κ²°κ³Ό γ ν
μ€νΈλ₯Ό ν΅κ³Όνμμ΅λλ€.
ν
μ€νΈ 3
μ
λ ₯κ° γ [45, 4, 35, 20, 3, 9], [20, 9, 3, 45, 4, 35]
κΈ°λκ° γ [1, 1]
μ€ν κ²°κ³Ό γ ν
μ€νΈλ₯Ό ν΅κ³Όνμμ΅λλ€.
μ±μ κ²°κ³Ό
ν
μ€νΈ 1 γ ν΅κ³Ό (0.01ms, 10.3MB)
ν
μ€νΈ 2 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 3 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 4 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 5 γ ν΅κ³Ό (0.01ms, 10.1MB)
ν
μ€νΈ 6 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 7 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 8 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 9 γ ν΅κ³Ό (0.01ms, 10.3MB)
ν
μ€νΈ 10 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 11 γ ν΅κ³Ό (0.01ms, 10.1MB)
ν
μ€νΈ 12 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 13 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 14 γ ν΅κ³Ό (0.01ms, 10.2MB)
ν
μ€νΈ 15 γ ν΅κ³Ό (0.00ms, 10.1MB)
4. νμ΄μ¬ νμ΄ μ€λͺ
μ λ¬Έμ μ μ£Όμ νΉμ§μ 2κ°μ§ κ²½μ°κ° λ°μνλ€λ μ μ λλ€
0μ΄ λμ€λ κ²½μ°μ λμ€μ§ μλ κ²½μ°μ λλ€. μ΄μλ°λΌ λ±μκ° λ¬λΌμ§ μ μμ΅λλ€.
κ·Έλμ μ°μ 0μ΄ λμ€μ§ μλ κ²½μ°μ λν΄μ cnt λ₯Ό ν΅ν΄, λ―Όμ°μ λ‘λ λ²νΈ lottos μ win_nums λ₯Ό 리μ€νΈ ννμμ μ§ν© ννλ‘ νλ³νμ ν΄μ€λλ€.
μ§ν© ννμ ν° μ₯μ μΌλ‘λ
μ€λ³΅μ νλ½νμ§ μκ³ , μ§ν© κ³μ°(κ΅μ§ν©, ν©μ§ν©, μ°¨μ§ν©)λ±μ κ³μ°μ λ°μ΄λμ μ λ¬Έμ μμ λ―Όμ°μ λ²νΈμ λ‘λ λ²νΈκ° μΌμΉ νλμ§λ₯Ό λ°λ‘ sort μ if λ¬Έμ ν΅ν΄ κ³μ°νμ§ μκ³ μλ λ°λ‘ κ³μ°μ κ°λ₯νκ² ν΄μ€λλ€.
λ€μμΌλ‘λ, λ‘λ λ²νΈμ μΌμΉνλ object λ€μ λν΄μ λ°νν κ°μ len μ ν΅ν΄ κΈΈμ΄λ₯Ό ꡬνλ©΄, λͺ κ°μ λ‘λ λ²νΈμ μΌμΉνλμ§ μ¬λΆλ₯Ό cnt λ₯Ό ν΅ν΄ μ μ μμ΅λλ€. cntλ 0~6 μ κ°μ§ μ μμΌλ©°, cnt=6μ λ―Όμ°μ λ²νΈμ λ‘λ λ²νΈκ° λͺ¨λ μΌμΉν¨μ μλ―Ένλ©°, λ±μλ₯Ό κ³μ°νλ κ²½μ°, (7- cnt) λ₯Ό ν΅ν΄ λ±μλ₯Ό λνλΌ μ μμ΅λλ€.
λ€μμΌλ‘λ 0μ΄ λμ€λ κ²½μ°λ₯Ό κ³ λ €ν΄μΌ ν©λλ€. 0μ΄ λμ¬λ, μ§ν©μ objectλ₯Ό λ³κ²½ν΄μ λ‘λ λ²νΈμ κ°κ² ν΄μ£Όλ λ°©μμΌλ‘ ν΄λ³ΌκΉνμ§λ§, 0μ΄ μλ μ리μ 45κ° μμ κ²½μ°, μ΅κ³ λ±μμ μ΅μ λ±μλ₯Ό ꡬν λ λ§μ½μ +1 κ³Ό κ°μ 쑰건μ ν΅ν΄ μ€μ νλ€λ©΄, λ‘λ λ²νΈμ κΈΈμ΄ μ ν λ²μ 45λ₯Ό μ΄κ³Όνλ λ¬Έμ κ° λ°μν©λλ€. κ·Έλμ λ¨μνκ², 0μ΄ μμ κ²½μ° μ΅κ³ λ±μ κ°μ κ²½μ°, λ‘λ λ²νΈμ μΌμΉνλ κ²½μ°μ΄κ³ , μ΅μ λ μμ μΌμΉνμ§ μλ κ²½μ°μ΄λ―λ‘, λ¨μν 0μ count ν κ°μ λνκ±°λ λνμ§ μλ μν©μ ν΅ν΄, μ΅κ³ λ±μμ μ΅μ λ±μλ₯Ό ꡬνν μ μμ΅λλ€.
5. μνμ°©μ€
sorted, sort λ±μ ν΅ν΄ λ¬Έμ λ₯Ό νλ €κ³ νμμ΅λλ€.
sort κ°μ κ²½μ°, νλ² μ€ννλ©΄, μλμΌλ‘ inplace κΈ°λ₯μ μν΄ λ¦¬μ€νΈκ° μμλλ‘ λ³νλμ΄μ§λλ€.
# λΌμ΄λΈλ¬λ¦¬
import random
num = range(0,46)
win_num = range(1,46) # 0μ ν¬ν¨νμ§ μμ
# ꡬ맀ν λ‘λ λ°°μ΄
lottos = random.choices(num, weights = None, k = 6)
# λΉμ²¨ λ²νΈ λ‘λ λ°°μ΄
# win_nums = random.choices(win_num, weights = None, k = 6) # κ°μ μ«μ 2κ° μ΄μ λ΄κ²¨μμ§ μμ
win_nums = random.sample(win_num, 6)
print('λ‘λ λ²νΈ : ', lottos)
print('λΉμ²¨ λ²νΈ λ‘λ λ°°μ΄ : ', win_nums)
# sort, 0μ΄ μλ κ²½μ°μ 0μ΄ μλ κ²½μ° λλ μ λ±μλ₯Ό μΈ‘μ ν΄μΌν¨
print('λ‘λ λ²νΈ : ', sorted(lottos))
print('λΉμ²¨ λ²νΈ λ‘λ λ°°μ΄ : ', sorted(win_nums))
# cnt : μΌμΉνλ μ«μ
# cnt = 6 --> 1λ±
# cnt = 5 --> 2λ±
# cnt = 4 --> 3λ±
# cnt = 3 --> 4λ±
# cnt = 2 --> 5λ±
# cnt = 1 --> 6λ±
# cnt = 0 --> 6λ± (λ첨)
# set μ§ν© μλ£νμΌλ‘ νκΈ°
# setμ λ€μκ³Ό κ°μ 2κ°μ§ ν° νΉμ§
# μ€λ³΅μ νμ©νμ§ μλλ€
# μμκ° μλ€(Unordered)
print(len(set(lottos) & set(win_nums)))
cnt = len(set(lottos) & set(win_nums))
print(lottos.count(0))
cnt_0 = lottos.count(0)
print('μ΅κ³ λ±μ : ', 7-max(cnt + cnt_0,1))
print('μ΅μ λ±μ : ', 7-max(cnt, 1))
λ‘λ λ²νΈ : [40, 11, 28, 8, 44, 29]
λΉμ²¨ λ²νΈ λ‘λ λ°°μ΄ : [6, 1, 4, 31, 14, 7]
λ‘λ λ²νΈ : [8, 11, 28, 29, 40, 44]
λΉμ²¨ λ²νΈ λ‘λ λ°°μ΄ : [1, 4, 6, 7, 14, 31]
0
0
μ΅κ³ λ±μ : 6
μ΅μ λ±μ : 6
6. λλμ
setμ΄λΌλ μ§ν©μ μ¬μ©ν΄λ³΄κ³ , sortλ₯Ό μ¬μ©νμ§ μκ³ λ μ§§κ² μ½λ ꡬνμ΄ κ°λ₯νλ€λ μ μ΄ μ¬λ°μμ΅λλ€.
ν€μλ
μκ³ λ¦¬μ¦,λ‘λ,νμ΄μ¬ λ¬Έμ ,νλ‘κ·Έλλ¨Έμ€,python lotto, python programmers
'ποΈμννΈμ¨μ΄ > π»python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[νλ‘κ·Έλλ¨Έμ€/programmers] μ«μ λ¬Έμμ΄κ³Ό μλ¨μ΄ (0) | 2021.12.28 |
---|---|
[νλ‘κ·Έλλ¨Έμ€] μ κ· μμ΄λ μΆμ² (0) | 2021.12.28 |
int() argument must be a string, a bytes-like object or a number, not 'range' - range λ‘ int λ°μ΄ν° νμ λ°κΈ° (0) | 2021.12.28 |
[vscode] λ€μ€ 컀μ μ΄μ©νκΈ° (0) | 2021.12.28 |
λ₯λ¬λ κ°μ±λΆμ ν΄λ³΄κΈ°(λΉμ§λνμ΅) (0) | 2021.12.07 |