[프로그래머스] 타겟 넘버

The Flawless Bead·2023년 2월 10일
0

프로그래머스

목록 보기
8/20
post-thumbnail

🔗 문제로 이동 👉 [타겟 넘버]



이 문제의 핵심은 크게 아래와 같이 볼 수 있다.

  1. 모든 경우의 수 구하기 (완전탐색)
  2. 재귀함수를 구현할때 어떤 인자를 넘길지 생각하기



✅ 문제 풀이

/* 타겟 넘버 */
public class Main {
	
	public static int answer = 0;
	
	public static void recursion(int[]numbers, int target, int index, int sum) {

		// numbers의 모든 숫자를 합쳤을 때
		if(index == numbers.length) { 
			if(sum == target) {
				answer++;
				return;
			}

		} else {
			// 해당 인덱스가 양수일 경우
			recursion(numbers, target, index + 1, sum + numbers[index]);
			// 해당 인덱스가 음수일 경우 
			recursion(numbers, target, index + 1, sum - numbers[index]);
		}
		
	}

	public static void main(String[] args) {
		int[] numbers = {1, 1, 1, 1, 1};
		int target = 3;
		
		recursion(numbers, target, 0, 0);
		
		System.out.println(answer);

	}

}

profile
오늘을 살고 내일을 꿈꾸는 낭만주의자

0개의 댓글