programmers.co.kr/learn/courses/30/lessons/12977
μ½λ©ν μ€νΈ μ°μ΅ - μμ λ§λ€κΈ°
μ£Όμ΄μ§ μ«μ μ€ 3κ°μ μλ₯Ό λνμ λ μμκ° λλ κ²½μ°μ κ°μλ₯Ό ꡬνλ €κ³ ν©λλ€. μ«μλ€μ΄ λ€μ΄μλ λ°°μ΄ numsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, numsμ μλ μ«μλ€ μ€ μλ‘ λ€λ₯Έ 3κ°λ₯Ό κ³¨λΌ λνμ λ
programmers.co.kr
μ£Όμ΄μ§ μ«μ μ€ 3κ°μ μλ₯Ό λνμ λ μμκ° λλ κ²½μ°μ κ°μλ₯Ό ꡬνλ €κ³ ν©λλ€. μ«μλ€μ΄ λ€μ΄μλ λ°°μ΄ numsκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, numsμ μλ μ«μλ€ μ€ μλ‘ λ€λ₯Έ 3κ°λ₯Ό κ³¨λΌ λνμ λ μμκ° λλ κ²½μ°μ κ°μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.μ νμ¬ν
- numsμ λ€μ΄μλ μ«μμ κ°μλ 3κ° μ΄μ 50κ° μ΄νμ λλ€.
- numsμ κ° μμλ 1 μ΄μ 1,000 μ΄νμ μμ°μμ΄λ©°, μ€λ³΅λ μ«μκ° λ€μ΄μμ§ μμ΅λλ€.
1. μ²μ μ§ μ½λ
def solution(nums):
answer = 0
for i in range(len(nums)-2):
for j in range(i+1, len(nums)-1):
for k in range(j+1, len(nums)):
val = nums[i]+nums[j]+nums[k]
flg = False
for dig in range(2, (val//2)+1):
if val%dig == 0: flg = True
if not flg: answer += 1
return answer
2. λ무 볡μ‘νμ¬ μ½λλ₯Ό λ¨μΆν΄λ³΄μλ€.
from itertools import combinations
def solution(nums):
answer = 0
for i in map(sum, combinations(nums, 3)):
flg = False
for dig in range(2, i//2 + 1):
if i%dig==0: flg = True
if not flg: answer += 1
return answer
- combinations ν¨μλ μ£Όμ΄μ§ λ°°μ΄μμ nκ°μ μ‘°ν©μ ꡬνλ ν¨μμ΄λ€. μ‘°ν© λ¦¬μ€νΈλ₯Ό λ°μμ κ³§λ°λ‘ map ν¨μλ‘ λ¬Άμ΄ ν© map리μ€νΈλ‘ λ§λ€μλ€.
- μμλ 2λΆν° μκΈ° μμ //2 κΉμ§λ‘ λλμ΄ λ¨μ΄μ§μ§ μλλ€.