[프로그래머스, 131705] 삼총사 (java)
Problem Solving/Programmers

[프로그래머스, 131705] 삼총사 (java)

728x90

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

728x90

메모리: 75.1 MB, 시간: 1.36 ms

사용 알고리즘: 정렬, 포인터

import java.util.*;

class Solution {
    public int solution(int[] number) {
        
        // 정렬
        Arrays.sort(number);
        
        // 두 개의 조합과 한 개의 포인터
        int answer = 0;
        int pointer, sum;
        for(int i = 0; i < number.length - 2; i++) {
            for(int j = i + 1; j < number.length - 1; j++) {
                pointer = number.length - 1;
                sum = number[i] + number[j] + number[pointer];
                while(sum >= 0 && pointer > j) {
                    if(sum == 0) answer++;
                    sum -= number[pointer];
                    sum += number[--pointer];
                }
            }
        }

        return answer;
    }
}
728x90