두개 뽑아서 더하기

J·2021년 3월 17일
0

코딩테스트 연습

목록 보기
13/28

ArrayList 이용

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

class Solution {
    public ArrayList<Integer> solution(int[] numbers) {
 
      ArrayList<Integer> arr = new ArrayList<Integer>();
	        
	        for(int i=0;i<numbers.length-1;i++){
	            for(int j=i+1;j<numbers.length;j++){ 
	                int x = numbers[i]+numbers[j];
	                if(!arr.contains(x)) arr.add(x); //arr에 x가 없을 경우 x삽입
	            }
	        }
	        Collections.sort(arr); //ArrayList 오름차순 정렬
	        return arr;
    }
}

arraylist.contains(Object o)

이 목록에 지정된 요소가 포함되어 있으면 true를 반환합니다.

Collections.sort(arraylist)

ArrayList 정렬은 Collections 클래스의 sort를 이용 해야 한다.

Collections.sort(arr);

리턴 타입을 ArrayList가 아닌 배열로 했을 때

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

class Solution {
    public int[] solution(int[] numbers) {
        int [] answer ={};
        ArrayList<Integer> arr = new ArrayList<Integer>();
	        
	        for(int i=0;i<numbers.length-1;i++){
	            for(int j=i+1;j<numbers.length;j++){ 
	                int x = numbers[i]+numbers[j];
	                if(!arr.contains(x)) arr.add(x); //arr에 x가 없을 경우 x삽입
	            }
	        }
        
            int size = 0;
            answer = new int[arr.size()];
        
            for(int n : arr){  //ArrayList를 배열로 바꾸기
                answer[size++] = n;
            }
            Arrays.sort(answer);
        
	        return answer;
    }
}

0개의 댓글