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)):
if number[i] + number[j] + number[k] == 0:
answer += 1
return answer
가장 먼저 풀이법에 대해서는 정렬을 떠올렸다. 일정한 규칙이 있음을 확인했고 규칙은 다음과 같았다.
# 0, 1, 2 / 0, 1, 3 / 0, 1, 4 / 0, 2, 3 / 0, 2, 4 / 0, 3, 4
# 1, 2, 3 / 1, 2, 4 / 1, 3, 4
# 2, 3, 4
이걸 그대로 코드로 녹여내면 아래와 같다.
for i in range(3):
for j in range(i + 1, 4):
for k in range(j + 1, 5):
print(i, j, k)
def solution (number) :
from itertools import combinations
cnt = 0
for i in combinations(number,3) :
if sum(i) == 0 :
cnt += 1
return cnt
음... 내장 함수로 해결했는데 내장 함수로 해결하는 걸 그닥 좋아하지는 않지만 코딩 테스트 전용으로는 괜찮을 것 같아서 따로 정리해보려고 한다.