프로그래머스 두개뽑아서 더하기 완성 내코드

package Programmers;

import java.util.ArrayList;
import java.util.Arrays;

public class TwoSelect {


//정수 배열 을 만들기 -> numbers 에서 인덱스에 있는 두개의 수 -> 더해서 만들 수 있는 수를 배열에 오름차순
//[ 3, 4, 5, 2, 9 , 10 ] 
//두개의 수를 더해주세요. 1- 2, 3, 4, 5, 6, 7
/*2- 3, 4, 5, 6, 7, 
3 -  4, 5, 6, 7, 
4 - 5, 6, 7
5 - 6, 7, 
6 ,7 
더해서 나오기
문제 : 동일한 수를 빼주기  */
// 배열 처음 만들기
/* 1.정수 배열이 주어짐  []
* 2.그 정수에서 그 수를 제외하고 그 뒤에 있는 모든 수를 더해줘본다
* 3.나온 수를 앞에 있는 수들과 비교를 해서 없는 수이면 배열에 더해준다. 
* 4.배열은 나올 수 있는 최대값을 만들어진다. 
* 5.그 배열을 수가 있는 배열로 새로 만들어준다. 
*/
public static void main(String[] args) {
TwoSelect t = new TwoSelect();
int array[] = new int[]{400,3,400,30,800,0 };
method(array);
}

private static int[] method(int[] array) {
System.out.println(Arrays.toString(array)); 
int answerleng = 0; 
for ( int i = 1; i < array.length; i++){
answerleng += i ; 
}
System.out.println("중복되는 행이 없을시 총 나오는 경우의 수의 갯수 : " + answerleng ); 
int[] beforeAnswer = new int[answerleng];
System.out.println(Arrays.toString(beforeAnswer));
int sum = 0 ; 
int p = 0;
for(int i = 0 ; i < array.length-1; i++ ){
for ( int j = i+1; j <array.length ; j++){
sum =  array[i] + array[j];
System.out.println(sum);
beforeAnswer[p++] = sum ;
} //두번째 for
}// 첫번째 for
System.out.println(Arrays.toString(beforeAnswer));
//중복제거 
ArrayList list = new ArrayList(); 
for(int i = 0 ; i < beforeAnswer.length; i++ ){
if(!list.contains(beforeAnswer[i]))
list.add(beforeAnswer[i]);
}
System.out.println(list); 
int[] answer = new int[list.size()];
for(int i = 0 ; i < answer.length ; i++){ 
answer[i] = (int) list.get(i); 
}
System.out.println(Arrays.toString(answer)); 
for(int i = 0 ; i <answer.length ; i++){
for(int j = 0 ; j <answer.length ; j++){
if(answer[i] < answer[j]){
}
}
}
for(int i = 0; i < answer.length - 1; i++){

int min = i;

for(int j = i + 1; j < answer.length; j++){

if( answer[min] > answer[j] ){

min = j;

}

}

int temp = answer[i];

answer[i] = answer[min];

answer[min] = temp;

}

System.out.println(Arrays.toString(answer));
return answer; 
} //private static int[] method(int[] array) 의 얘 
}


---------------------프로그래머스제출용----------------------------------------------------------




package Programmers;

import java.util.ArrayList;
import java.util.Arrays;

public class TwoSelect {


public static void main(String[] args) {
TwoSelect t = new TwoSelect();
int array[] = new int[]{400,3,400,30,800,0 };
solution(array);
}

private static int[] solution(int[] solution) {
int[] answer = {};
int answerleng = 0; 
for ( int i = 1; i < solution.length; i++){
answerleng += i ; 
}
int[] beforeAnswer = new int[answerleng];
int sum = 0 ; 
int p = 0;
for(int i = 0 ; i < solution.length-1; i++ ){
for ( int j = i+1; j <solution.length ; j++){
sum =  solution[i] + solution[j];
beforeAnswer[p++] = sum ;
}
ArrayList list = new ArrayList(); 
for(int i = 0 ; i < beforeAnswer.length; i++ ){
if(!list.contains(beforeAnswer[i]))
list.add(beforeAnswer[i]);
}
answer = new int[list.size()];
for(int i = 0 ; i < answer.length ; i++){ 
answer[i] = (int) list.get(i); 
}
for(int i = 0 ; i <answer.length ; i++){
for(int j = 0 ; j <answer.length ; j++){
if(answer[i] < answer[j]){
}
}
}
for(int i = 0; i < answer.length - 1; i++){

int min = i;

for(int j = i + 1; j < answer.length; j++){

if( answer[min] > answer[j] ){

min = j;

}

}

int temp = answer[i];

answer[i] = answer[min];

answer[min] = temp;

}

System.out.println(Arrays.toString(answer));
return answer; 
} //private static int[] method(int[] array) 의 얘 
}

댓글