티스토리 뷰

프로그래머스 - 삼총사

문제

  • 숫자로 이루어진 리스트가 주어졌을 때, 리스트의 세 원소를 합해서 0이 될 경우 삼총사로 간주한다.
  • 예를 들어 [-1, 3, 0, 2, -5] 가 주어졌을 경우 (-2 + 0 + 2) 경우와 (3 + 2 - 5) 이렇게 두 경우 0이 되므로 삼총사가 되는 경우의 수는 2가지이다.

코드

from itertools import combinations


def solution(number):
    cnt = 0

    for num in combinations(number, 3):
        if sum(num) == 0:
            cnt += 1

    return cnt

설명

  • 순서 상관 없이 리스트의 원소 세개를 조합하여 그 합이 0이 되는 경우의 수를 찾는 문제이다.
  • 직접 재귀를 사용하여 조합을 구한 후 그 합을 구할 수 있지만 itertools.combinations를 사용하여 조합을 구한 후
  • 각 조합의 합이 0인 경우 카운트를 늘려서 마지막에 카운트 값을 리턴해주었다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함