문제링크: 삼총사
✍🏻 Information
| content | |
|---|---|
| 언어 | python |
| 난이도 | ⭐️ |
| 풀이시간 | 5분 |
| 제출횟수 | 3 |
| 인터넷검색유무 | no |
🍒 My Code
def solution(number):
answer = 0
for i in range(len(number)):
for j in range(i+1,len(number)):
for k in range(j+1,len(number)):
if number[i]+number[j]+number[k]==0:
answer+=1
return answer
💡 What I learned
combination 모듈을 사용하여 풀이할 수도 있다.def solution (number) :
from itertools import combinations
cnt = 0
for i in combinations(number,3) :
if sum(i) == 0 :
cnt += 1
return cnt
sorting 사용해서 시간을 줄여보려하였으나 주석에 쓰여진 것을 해결해줘야한다. 임의로 둘 중 하나를 옮기면 안됨def solution(number):
answer = 0
number.sort()
for i in range(len(number)):
left = i+1
right = len(number)-1
while left<right:
if number[i]+number[left]+number[right]<0:
left+=1
elif number[i]+number[left]+number[right]>0:
right-=1
else:
print(number[i],number[left],number[right])
answer+=1
# 여기서 left나 right를 옮겨줘야함
return answer