πŸ’‘ Coding Test/Programmers

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1. μ†Œμˆ˜ λ§Œλ“€κΈ° (Python/파이썬)

soozkim 2022. 4. 11. 23:56
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅] Summer/Winter Coding(~2018) - Lv1. μ†Œμˆ˜ λ§Œλ“€κΈ°
 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - μ†Œμˆ˜ λ§Œλ“€κΈ°

μ£Όμ–΄μ§„ 숫자 쀑 3개의 수λ₯Ό λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό κ΅¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μˆ«μžλ“€μ΄ λ“€μ–΄μžˆλŠ” λ°°μ—΄ numsκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, nums에 μžˆλŠ” μˆ«μžλ“€ 쀑 μ„œλ‘œ λ‹€λ₯Έ 3개λ₯Ό 골라 λ”ν–ˆμ„ λ•Œ

programmers.co.kr

문제 μ„€λͺ…

μ£Όμ–΄μ§„ 숫자 쀑 3개의 수λ₯Ό λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό κ΅¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μˆ«μžλ“€μ΄ λ“€μ–΄μžˆλŠ” λ°°μ—΄ numsκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, nums에 μžˆλŠ” μˆ«μžλ“€ 쀑 μ„œλ‘œ λ‹€λ₯Έ 3개λ₯Ό 골라 λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • nums에 λ“€μ–΄μžˆλŠ” 숫자의 κ°œμˆ˜λŠ” 3개 이상 50개 μ΄ν•˜μž…λ‹ˆλ‹€.
  • nums의 각 μ›μ†ŒλŠ” 1 이상 1,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, μ€‘λ³΅λœ μˆ«μžκ°€ λ“€μ–΄μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

nums result
[1,2,3,4] 1
[1,2,7,6,4] 4

μž…μΆœλ ₯ μ„€λͺ…

μž…μΆœλ ₯ 예 #1
[1,2,4]λ₯Ό μ΄μš©ν•΄μ„œ 7을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2
[1,2,4]λ₯Ό μ΄μš©ν•΄μ„œ 7을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
[1,4,6]을 μ΄μš©ν•΄μ„œ 11을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
[2,4,7]을 μ΄μš©ν•΄μ„œ 13을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
[4,6,7]을 μ΄μš©ν•΄μ„œ 17을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

제좜

- combination μ‚¬μš©

- prime ν•¨μˆ˜ : μ†Œμˆ˜ νŒλ³„ν•˜λŠ” ν•¨μˆ˜

from itertools import combinations


def prime(num):
    result = 0
    for i in range(2, num):
        if num % i == 0:
            return False

    return True


def solution(nums):
    answer = 0
    nums_arr = list(combinations(nums, 3))
    for i in nums_arr:
        sum = i[0] + i[1] + i[2]

        if prime(sum):
            answer += 1

    return answer
728x90