https://school.programmers.co.kr/learn/courses/30/lessons/43165
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제
numbers배열에 담긴 숫자들로 +,-를 사용해서 target을 만들 수 있는 경우의 수를 구하는 문제였다.
풀이
dfs를 이용해서 모든 경우의 수를 검사해주었다.
#include <string>
#include <vector>
using namespace std;
int target_tmp,numbers_length;
vector<int> numbers_tmp;
int answer = 0;
void plus_minus(int sum ,int depth){
if(depth==numbers_length){
if(sum==target_tmp)
answer++;
return;
}
plus_minus(sum+numbers_tmp[depth],depth+1);
plus_minus(sum-numbers_tmp[depth],depth+1);
}
int solution(vector<int> numbers, int target) {
target_tmp=target;
numbers_length=numbers.size();
numbers_tmp=numbers;
plus_minus(0,0);
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 포켓몬 c++ (0) | 2023.11.07 |
---|---|
[프로그래머스] 정수삼각형 c++ (0) | 2023.11.06 |
[프로그래머스] 교점에 별 만들기 c++ (0) | 2023.09.26 |
[프로그래머스] 대충 만든 자판 c++ (0) | 2023.09.26 |
[프로그래머스] 소수 만들기 c++ (0) | 2023.09.26 |