[Python]λ°±μ€ 2309λ²::μΌκ³±λμμ΄
Key Point
π intertools λͺ¨λ μ¬μ©νκΈ°
μ 리
π combinations κ³Ό permutations μ μ°¨μ΄μ μ?
- permutations μ μ€λ³΅μ΄ λμ΄λ μμκ° λ€λ₯Έ μΌμ΄μ€μ΄λ©΄ λͺ¨λ ν¬ν¨
>> (1,2,3) (1,3,2) μ‘΄μ¬, λ€λ₯Έ μλ―Έμ.
- combinations μ μ€λ³΅ μμ
>> (1,2,3)μΈμ κ°μ μμ ν¬ν¨λ κ² μμ
μ²μ νμ΄ (μ λ΅ O)
from itertools import permutations
list_height = []
for i in range(9):
list_height.append(int(input()))
list_height.sort()
# sum(list) = > 1μ°¨μ 리μ€νΈμ ν©μ.
for i in permutations(list_height, 7):
if(sum(i) == 100):
print(i[0])
print(i[1])
print(i[2])
print(i[3])
print(i[4])
print(i[5])
print(i[6])
break
λ λμ νμ΄
from itertools import combinations
h = [int(input()) for _ in range(9)]
for i in combinations(h,7):
if (sum(i) == 100):
for j in sorted(i):
print(j)
κ·Έ μΈμ νμ΄
μ΄μ€ for λ¬Έ / 9λͺ
μ€ 7λͺ
μ λ½λ 건, 9λͺ
μ€ 2λͺ
μ λ½λλ€λ κ²κ³Ό κ°μ μλ―Έμ΄λ€. κ·Έλ λ€λ©΄, μ΄μ€ forλ¬Έμ ν΅ν΄ 2λͺ
μ λ½κ³ κ·Έ μΈμ λμμ΄ ν€ ν©μ ꡬνλ©΄ λλ€.
Nμ΄ 9μ΄κΈ° λλ¬Έμ, ν λ§ νλ€.
κ·Έ μΈμ λ΄ μ§λ¬Έ λ° λ©ν λ΅λ³ μ¬ν
μ§λ¬Έ. νμ΄μ¬ λ΄λΆμ μΌλ‘ 리μ€νΈ λ΄μμ in κ°μ κ±°λ, sort κ°μ λ©μλ μ¬μ©μ νλ건
μκ°λ³΅μ‘λμ κ³ λ €λ₯Ό νμ§ μμλ λλ μ΄μ κ° λκ°μ?
μ΄λ―Έ μ±λ₯μ μΌλ‘ μμ£Ό λΉ¨λΌμ κ·Έλ°κ°μ?
λ΅λ³. κ³ λ €λ₯Ό μν΄λ λλ κ²μ μλλλ€. κ³ λ €ν΄μΌ ν©λλ€. νμ΄μ¬ 리μ€νΈ μ¬λΌμ΄μ±μ κ·Έλ₯ forλ¬Έ μ΄ κ²κ³Ό λκ°μ λ°©μμ΄λΌ O(N) μΌλ‘ μκ³ μμ΅λλ€. μΈμ΄λ€μ΄ κΈ°λ³ΈμΌλ‘ μ 곡νλ μ λ ¬μ λ€ O(NlogN) μ
λλ€.
μ§λ¬Έ. νΉμ λ°±μ€ νλ, λ€λ₯Έ ideμμ μΆ©λΆν νμ΄ λ³Έν μμ±λ κ±° κ°μ λ΅μμ μ μΆνλκ² μλλΌ, λ°λ‘λ°λ‘ λ°±μ€μμ νΈλκ² μ’λμ?
λ΅λ³. κ·Έλ₯ IDEμμ νΈλκ² μΌλ°μ μ
λλ€. λ°±μ€μμ λ°λ‘ νΈλ μ¬λμ... μμ§ μμκΉμ?