Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 삼총사 (자바/Java) 본문

알고리즘문제/프로그래머스(Java)

[프로그래머스] - 삼총사 (자바/Java)

luke-king 2024. 5. 28. 13:34

 

 

 

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


 

class Solution {
    public int solution(int[] number) {
        int answer = 0;
        int res = 0;
        
        for(int i = 0; i < number.length; i++){
        
            for(int j = i + 1; j < number.length; j++){
            
                for(int k = j + 1; k < number.length; k++){
                
                    res = number[i] + number[j] + number[k];
                    
                    if (res == 0){
                        answer++;
                    }
                }
            }
        }
        return answer;
    }
}

 

오늘 문제는 프로그래머스 " 삼총사 " 문제다.

문제 접근을 보면 3개의 수를 합할 때 0 이 나오면 카운트 1씩 해주면 된다.

크게 설명이 없어도 풀수있다 생각하고 바로 문제 풀이 해보겠다.

 

1. 3개의 수 합을 구해야하니 3중 for문을 만들어 준다. 

for문중 변수 j, 변수 k 를 보면 앞에 있는 for문 변수들에 +1을 해준걸 볼 수 있는데 그 이유는

5개의 값이 있다면

1 2 3 @ @

1 2 @ 4 @

1 2 @ @ 5

1 @ 3 4 @

1 @ 3 @ 5 이런 식으로 규칙적으로 하기 위해서다.

 

2. 다음으로 변수 res 에 각 i, j, k 인덱스 값을 합해 담아준다.

 

3. res(3개의 합) 가 0의 조건식이 맞다면 answer을 1 씩 증가해 주면 끝이다.