카테고리 없음

[Coding test] 삼총사

Twisted 2024. 10. 23. 10:10

위와 같은 문제를 어떻게 접근할까?

 

이런식으로 코드를 직접 짜기전에 노트에 적으면서 생각을 해보는 편이다.

 

학생 한명을 찾거나 할때는 단순 반복문을 사용해도 문제가 없겠지만 nCm같은 전체 중에 몇개의 조합을 짜는 경우에는 반복문은 적절하지 않다고 생각해서 재귀함수쪽으로 구상해 보았다.

 

삼총사가 아니라면 계속 순환하여금 조합을 찾을 수 있도록 만들었다.

class Solution {
    int answer = 0;
    int[] temp;
    public int solution(int[] number) {
        temp = number.clone();
        findTriple(0,0,0);
        return answer;
        
    }
    
    public void findTriple(int start, int people, int total){
        
        if(people == 3){
            if(total == 0){
                answer += 1;
            }
            return;
        }
        
        for(int i = start; i < temp.length; i++){ 
            findTriple( i + 1, people + 1, total + temp[i] );
        }
        
        
    } 
    
}

최종 완성 코드이다.  

혹시 풀어보고 싶은 사람은 아래 링크를 이용하여 직접 풀어보면 좋을 것 같다.

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

 

프로그래머스

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

programmers.co.kr