[Study] 프로그래머스 lv. 1 삼총사 ( 72% )

ayboori·2023년 7월 11일
0

Java Study

목록 보기
14/34

풀이 로직

  1. 경우의 수를 구하듯이 인덱스를 i, i+1, i+2로 증가시킨다
  2. i + (i+1) + (i+2) 가 0이 되는 경우, answer 의 값을 1 증가 시킨다.
  3. answer을 리턴한다.

내가 작성한 코드

class Solution {
    public int solution(int[] number) {
        int answer = 0;
        for (int i = 0 ; i < number.length ; i++){ // 첫 번째 인덱스
            for (int j = i + 1; j < number.length ; j++){ // 두 번째 인덱스 - 1번 다음 값부터 증가
                for (int k = j + 1 ; k < number.length ; k++){// 세 번째 인덱스 - 2번 다음 값부터 증가
                    if(number[i] + number[j] + number[k] == 0){
                        answer ++;
                    }
                }
            }
        }
        return answer;
    }
}

실행 시간

테스트 1 〉	통과 (0.02ms, 71.4MB)
테스트 2 〉	통과 (0.02ms, 76MB)
테스트 3 〉	통과 (0.02ms, 74.5MB)
테스트 4 〉	통과 (0.02ms, 76.5MB)
테스트 5 〉	통과 (0.04ms, 78.4MB)
테스트 6 〉	통과 (0.02ms, 76.9MB)
테스트 7 〉	통과 (0.03ms, 75.4MB)
테스트 8 〉	통과 (0.02ms, 72MB)
테스트 9 〉	통과 (0.03ms, 78.1MB)
테스트 10 〉	통과 (0.02ms, 69.4MB)
테스트 11 〉	통과 (0.03ms, 77.3MB)
테스트 12 〉	통과 (0.03ms, 75.2MB)
테스트 13 〉	통과 (0.03ms, 77MB)

다른 사람의 풀이

class Solution {
    public int solution(int[] number) {
        int answer = 0;

        for(int i=0; i<number.length-2; i++){
            for(int j=i+1; j<number.length-1; j++){
                for(int k=j+1; k<number.length; k++){
                    if(number[i]+number[j]+number[k]==0) answer++;
                }
            }
        }

        return answer;
    }
}

1, 2번째 인덱스의 경우 마지막까지 검사할 필요가 없기 때문에 -2, -1을 해 주었다.

profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초

0개의 댓글