풀이
function solution(number) { let sum=0 for(let i=0; i<number.length; i++){ for(let j=i+1; j<number.length; j++){ for(let k=j+1; k<number.length; k++){ if(number[i]+number[j]+number[k]===0){ sum+=1 } } } } return sum }
📝 풀이 설명
- 이번에 알게 된 점은 중복 없이 묶는 방법이다. 이번 문제에서 반복문 초깃값 설정이 중요했다.
i=0
,j=1
,k=2
이런 식으로 작성하면 무수히 많은 경우의 수가 나온다.- 내가 원하는 값은 만약에 i가 첫 번째 인덱스면 j는 첫 번째 인덱스를 뺀 나머지고 k는 i와 j를 뺀 나머지로 중복 없이 묶여야 한다.
- 그래서 반복문의 초깃값을 각각에 맞춰 작성했다. 그러니 원하는 대로 중복 없이 묶였다.
- 그래서 각각의 값을 더해 0이 되는 값만을 찾아 출력한다.