알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
Think🤔
Solution✍
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = {1};
Arrays.sort(numbers); // numbers 배열들 오름차순으로 정렬
// 중복된 값 로직 안넣게 Set으로 변경 가능
ArrayList<Integer> arr = new ArrayList(); // 제네릭 생략 가능
int sumNum = 0;
for(int i=0; i<numbers.length; i++){
for(int j=i+1; j<numbers.length; j++){
sumNum = numbers[i]+numbers[j];
// 중복값 비교 로직 필요
System.out.println(sumNum);
}
}
return answer;
}
}
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public int[] solution(int[] numbers) {
// 중복된 값 로직 안넣게 Set으로 변경 가능
ArrayList<Integer> arr = new ArrayList(); // 제네릭 생략 가능
int sumNum = 0;
for(int i=0; i<numbers.length; i++){
for(int j=i+1; j<numbers.length; j++){
sumNum = numbers[i]+numbers[j];
if(arr.indexOf(sumNum) == -1){
arr.add(sumNum);
continue;
}
}
}
int[] answer = new int[arr.size()];
for(int i=0; i<arr.size(); i++){
answer[i] = arr.get(i);
}
Arrays.sort(answer);
return answer;
}
}
Review🤩
HashSet을 이용하면 중복값을 안받을 수 있다.
ArrayList를 이용해서 내부에서 for문을 돌지않고, indexOf를 사용할 수 있음... 어느정도의 코스트가 들어가는지는 잘 모르겠다.
'Algorithm' 카테고리의 다른 글
[프로그래머스] K번째수 (0) | 2022.08.02 |
---|---|
[프로그래머스] 3진법 뒤집기 (0) | 2022.07.29 |
[프로그래머스] 2016년 (0) | 2022.07.27 |
[프로그래머스] 최소직사각형 (0) | 2022.07.27 |
[프로그래머스] 소수 만들기 (0) | 2022.07.26 |