[코딩테스트] 타겟 넘버

시나브로·2021년 6월 25일
0

코딩테스트

목록 보기
17/34
post-thumbnail

문제


타겟 넘버 문제 바로가기



제출 코드(JAVA)


첫번째 코드 제출

class Solution {
    int answer = 0;
    
    public int solution(int[] numbers, int target) {
        getDfs(numbers, numbers[0], 0, target);
        getDfs(numbers, -1 * numbers[0], 0, target);

        return answer;
    }   

    public void getDfs(int[] numbers, int num, int depth, int target) {
        if(depth == numbers.length - 1) {
            if(num == target) {
                answer++;
            }
            return;
        }

        getDfs(numbers, num + numbers[depth + 1], depth + 1, target);
        getDfs(numbers, num - numbers[depth + 1], depth + 1, target);
    }  
}

재귀형식으로 탐색 풀이 답변


정확성 테스트

정확성  테스트
테스트 1 〉	통과 (7.37ms, 53.3MB)
테스트 2 〉	통과 (12.46ms, 52MB)
테스트 3 〉	통과 (0.21ms, 51.8MB)
테스트 4 〉	통과 (0.31ms, 52.1MB)
테스트 5 〉	통과 (2.14ms, 52.8MB)
테스트 6 〉	통과 (0.35ms, 53.4MB)
테스트 7 〉	통과 (0.21ms, 52.2MB)
테스트 8 〉	통과 (0.37ms, 53MB)




고민 끝에 다른 분의 답변을 참조,,,



제출 코드(Python)


코드 제출

def solution(numbers, target):
    if not numbers and target == 0 :
        return 1
    elif not numbers:
        return 0
    else:
        return solution(numbers[1:], target-numbers[0]) + solution(numbers[1:], target+numbers[0])

정확성 테스트

정확성  테스트
테스트 1 〉	통과 (329.38ms, 10.2MB)
테스트 2 〉	통과 (326.93ms, 10.2MB)
테스트 3 〉	통과 (0.55ms, 10.2MB)
테스트 4 〉	통과 (1.63ms, 10.2MB)
테스트 5 〉	통과 (10.80ms, 10.3MB)
테스트 6 〉	통과 (1.04ms, 10.3MB)
테스트 7 〉	통과 (0.59ms, 10.2MB)
테스트 8 〉	통과 (3.03ms, 10.2MB)




profile
Be More!

0개의 댓글