-
[프로그래머스] 삼총사 자바스크립트프로그래밍 언어 😵💫/JavaScript 2023. 3. 27. 14:12
배열의 원소 3개를 더했을 때 0이 되는 경우를 count하기
어떻게 할까 했는데 반복문을 3번 돌릴 수가 있나 ? 싶어서..
근데 그게 됐다
그래서 3번 돌렸다.
function solution(number) { var answer = 0; for(var i=0; i< number.length; i++){ for(var j=i+1; j<number.length; j++) for(var k=j+1; k<number.length; k++){ if(number[i] + number[j]+ number[k] == 0){ answer++; } } } return answer; }
처음에는 반복문 돌리면 j의 시작점을 어떻게 하지 싶었는데
내가 삼중 반복문을 제대로 이해하지 못한거였다..
이중 반복이라고 하면 i번 돌아가는동안 만약 i가 0일때 j를 한번씩 다 돌리고 그다음 i++하고 j를 또 돌리는거니까 !
테스트케이스로 경우의 수를 생각해보면
[-2, 3, 0, 2, -5]
i= -2 ,j=3,k=0 ; i=-2, j=3, k=2; 이런 식으로 조합하는거다 .. 말로 설명하니 어렵군
이런식... 이게 합을 구하는 거라 순서는 상관이 없는데
그래서 그럼 i가 -2일때 조합만 구하면 되는거 아닌가? 햇는데 그러면 0 2 -5는? 해서.. 아하 !
다른사람 풀이
반복문의 범위를 number.length-2; number.length-1; number.length;로
방금 말했듯이 합이니까 !! 겹치는 조합 필요없는 계산을 굳이 하지 않도록 제한해주었다.
'프로그래밍 언어 😵💫 > JavaScript' 카테고리의 다른 글
[프로그래머스] 점의 위치 구하기, 크기가 작은 부분문자열 (2) 2023.03.29 자바스크립트 값 입력 받기 (1) 2023.03.14 javascript 2 (1) 2023.03.06 javascript 1 (2) 2023.03.05