최대 1 분 소요

https://school.programmers.co.kr/learn/courses/30/lessons/131705

.

모든 경우의 수를 모두 탐색하는 브루트포스 문제이다.

전체 정수 번호의 리스트에서 3명을 뽑는 경우의수를 모두 찾아야 하므로 3중 for문을 이용했다.

나의 풀이

def solution(number):
    answer = 0
    for i in range(len(number) - 2) :
        for j in range(i + 1, len(number) - 1) :
            for k in range(j + 1, len(number)) :
                result = number[i] + number[j] + number[k]
                if result == 0 :
                    answer += 1
    return answer

다른 사람의 풀이

from itertools import combinations

def solution(number) :
    answer = 0
    for i in combinations(number, 3) :
        if sum(i) == 0 :
            answer += 1
	return answer
from itertools import combinations
number = [1, 2, 3, 4, 5]
print(list(combinations(number, 3)))

출력결과

# [(1, 2, 3), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5), (1, 4, 5), (2, 3, 4), (2, 3, 5), (2, 4, 5), (3, 4, 5)]

인자로 주어진 리스트의 원소들을 두번째 인자의 수만큼 원소들을 뽑아낸다.

댓글남기기