๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Python ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Summer/Winter Coding(~2018) > ์†Œ์ˆ˜ ๋งŒ๋“ค๊ธฐ

by Vada Kim 2021. 5. 3.
728x90
๋ฐ˜์‘ํ˜•

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 ๊นŒ์ง€๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค.
728x90
๋ฐ˜์‘ํ˜•