-
[프로그래머스] 두 개 뽑아서 더하기ALGORITHM/PROGRAMMERS 2020. 11. 6. 23:51
programmers.co.kr/learn/courses/30/lessons/68644?language=java
2020-11-06
import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; class Solution { public static int len; public static HashSet<Integer> arr; public static ArrayList<Integer> q; public static boolean vtd[]; public static int answer[] = {}; public static int[] number; public static void solve(int idx, int cnt, int sum) { if(cnt == 2) { arr.add(sum); return; } for(int i = 0; i < len; i++) { if(!vtd[i]) { vtd[i] = true; solve(i, cnt+1, sum+number[i]); vtd[i] = false; } } } public int[] solution(int[] numbers) { number = numbers; len = numbers.length; q = new ArrayList<>(); vtd = new boolean[len]; arr = new HashSet<Integer>(); solve(0, 0, 0); q = new ArrayList<Integer>(arr); answer = new int[arr.size()]; for(int i = 0; i < arr.size(); i++) { answer[i] = q.get(i); } Arrays.sort(answer); return answer; } }
중복제거를 위해 HashSet을 사용했고, 정렬을 위해 Arrays.sort()를 사용했다.
깔끔한 코드인지는 잘 모르겠다
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 구명보트 (0) 2020.11.23 [프로그래머스] 정수 내림차순으로 배치하기 (0) 2020.11.15 [프로그래머스] 같은 숫자는 싫어 (0) 2020.11.15 [프로그래머스] 스킬트리 (0) 2020.11.11 [프로그래머스] 크레인 인형뽑기 게임 (0) 2020.11.07