반응형
프로그래머스 '타겟넘버' 문제 입니다.
코딩테스트 연습 - 타겟 넘버
n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+
programmers.co.kr
import java.util.ArrayList;
import java.util.Stack;
class Solution {
public int solution(int[] numbers, int target) {
int answer = 0;
int popNum = 0;
int tempNumber = 0;
Stack<Integer> rst = new Stack<Integer>();
ArrayList<Integer> list = new ArrayList<Integer>();
rst.push(numbers[0]);
rst.push(numbers[0]*-1);
for (int i = 1; i < numbers.length; i++) {
tempNumber = numbers[i];
list = new ArrayList<Integer>();
while(!rst.isEmpty()) {
popNum = rst.pop();
list.add(popNum+tempNumber);
list.add(popNum+(tempNumber*-1));
}
for (int j = 0; j < list.size(); j++) {
rst.push(list.get(j));
}
}
for (Integer integer : rst) {
if(integer == target)
answer++;
}
return answer;
}
}
반응형
'💻 IT > 📌 ALG' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 :: JAVA 풀이 (0) | 2022.03.12 |
---|---|
[프로그래머스] 신규 아이디 추천 :: JAVA 풀이 (3) | 2022.03.06 |
[프로그래머스] 로또의 최고 순위와 최저 순위 :: JAVA 풀이 (1) | 2022.03.06 |
[프로그래머스] 가장 큰 수 :: 정렬 이용하자 (0) | 2021.08.15 |
[백준] 11653번 :: 소인수분해 (0) | 2021.02.27 |