반응형
카테고리 (Category) | 작성 날짜 (Write Date) | 최근 수정 날자 (Recent Write Date) | 작성자 (Writer) |
Algorithm | 2019.04.14 21:37 | 2021.05.04. 22:35 | Dev.Yang |
n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.
[제한사항]
- 주어지는 숫자의 개수는 2개 이상 20개 이하입니다.
- 각 숫자는 1 이상 50 이하인 자연수입니다.
- 타겟 넘버는 1 이상 1000 이하인 자연수입니다.
📄 [탐색] 타겟 넘버 C++ Source Code
#include <vector>
#include <iostream>
using namespace std;
void search(vector<int> numbers, int target, int sum, int * answer, int index) {
int numberLength = numbers.size();
if (index >= numberLength) {
if (sum == target) { (*answer)++; return; }
return;
}
search(numbers, target, sum + numbers.at(index), answer, index + 1);
search(numbers, target, sum - numbers.at(index), answer, index + 1);
}
int solution(vector<int> numbers, int target) {
int answer = 0;
search(numbers, target, 0, &answer, 0);
return answer;
}
📄 [탐색] 타겟 넘버 Swift Source Code
import Foundation
func searchTarget(number: [Int], depth: Int, target: Int, value: Int, answer: inout Int) {
// MARK: - 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요.
if depth >= number.count {
if target == value { answer = answer + 1 }
return
}
// MARK: - 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다.
searchTarget(number: number, depth: depth + 1, target: target, value: value + number[depth], answer: &answer)
searchTarget(number: number, depth: depth + 1, target: target, value: value - number[depth], answer: &answer)
}
func solution(_ numbers:[Int], _ target:Int) -> Int {
var answer = 0
searchTarget(number: numbers, depth: 0, target: target, value: 0, answer: &answer)
return answer
}
🚀 REFERENCE
반응형
'# 사용하지 않는 게시글 > 알고리즘 문제' 카테고리의 다른 글
[프로그래머스 - 탐욕법] 큰 수 만들기 (0) | 2019.04.21 |
---|---|
[프로그래머스 - 완전탐색] 소수 찾기 (0) | 2019.04.15 |
[프로그래머스 - 힙] 더 맵게 (0) | 2019.04.14 |
[프로그래머스 - 스택/큐] 탑 (0) | 2019.04.12 |
[프로그래머스 - 스택/큐] 기능개발 (0) | 2019.04.08 |
댓글