๋ฌธ์
์ฃผ์ด์ง ์ซ์ ์ค 3๊ฐ์ ์๋ฅผ ๋ํ์ ๋ ์์๊ฐ ๋๋ ๊ฒฝ์ฐ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค.
์ซ์๋ค์ด ๋ค์ด์๋ ๋ฐฐ์ด nums๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋,
nums์ ์๋ ์ซ์๋ค ์ค ์๋ก ๋ค๋ฅธ 3๊ฐ๋ฅผ ๊ณจ๋ผ ๋ํ์ ๋ ์์๊ฐ ๋๋ ๊ฒฝ์ฐ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์กฐ๊ฑด
- nums์ ๋ค์ด๊ฐ๋ ์ซ์์ ๊ฐ์๋ 3๊ฐ ์ด์ 50๊ฐ ์ดํ์ ๋๋ค.
- nums์ ๊ฐ ์์๋ 1์ด์ 1,000์ดํ์ ์์ฐ์์ด๋ฉฐ, ์ค๋ณต๋ ์ซ์๊ฐ ๋ค์ด์์ง ์์ต๋๋ค.
์ ์ถ๋ ฅ ์
def solution(nums):
answer = 0
arr = []
for i in combination(nums, 3):
arr.append(sum(i))
for i in range(len(arr)):
for j in range(2,arr[i]):
if arr[i]%j==0:
break
else: answer += 1
return answer
def combination(nums, r): #์กฐํฉ ์ ๋๋ ์ดํฐ ์์ฑ
for i in range(len(nums)):
if r == 1:
yield[nums[i]]
else:
for j in combination(nums[i+1:], r-1):
yield[nums[i]] + j
์ฝ๋ฉํ ์คํธ ์ค ์ธ๋ถ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค๊ณ ๋ค์๋ค.
๊ทธ๋์ ์กฐํฉ์ ํจ์๋ก ๊ตฌํํ์๋ค.
์ ๋ค๋ ์ดํฐ์ ์ผ๋ฐ ํจ์์ ์ฐจ์ด๋ return์ ์ฌ์ฉํ๋ yield๋ฅผ ์ฌ์ฉํ๋์ธ๋ฐ,
return์ ํ ํจ์๋น ํ๋ฒ ์คํ๋๊ณ , ์คํ๋๋ฉด ๋ฐํ๊ฐ์ ๋ฐํํ๊ณ ํจ์๊ฐ ์ข ๋ฃ๋์ง๋ง
yield์ ์ฌ๋ฌ ๊ฐ์ ์ ๋ ฅ ํ ์ ์๊ณ , ์ ๋ ฅ๋ ๊ฐ๋ค์ next()๋ฅผ ํตํด ์ ๋ ฅ ๋ ๊ฐ์ด ๋ชจ๋ ์์ง๋ ๋๊น์ง ์์ฐจ์ ์ผ๋ก
๋ฐํ๋๋ค.
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ํคํจ๋ ๋๋ฅด๊ธฐ(67265) (0) | 2022.04.21 |
---|---|
[Javascript] ์ ๊ท ์์ด๋ ์ถ์ฒ (72410) (0) | 2022.04.20 |
[Javascript] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์ (77484) (0) | 2022.04.20 |
[Javascript] ์ ๊ณ ๊ฒฐ๊ณผ ๋ฐ๊ธฐ (92334) (0) | 2022.04.19 |
[Javascript] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (81301) (0) | 2022.04.18 |