카테고리 없음

[Programers]두개 뽑아서 더하기 문제 JAVA로 풀기!!

Dev_SeokHyeon 2021. 3. 30. 23:51

오랜만에 공부를 해서 문제를 풀어 봤어요 하... 8시 30분에 시작해서 11시 30분에 겨우 끝났네요... 내 머리가 이렇게 나빠졌나 싶을 정도로... ㅠㅠ

자바 메인 클래스로 solution.class를 실행시키기 위해서 만든 클래스 입니다. 저는 테스트를 하기 위해서 eclipse를 통해 제가 작성한 코드를 분석하면서 공부를 했어요

package practice;

public class Main {
	public static void main(String[] args) {
		Solution s =new Solution();
		int[] numbers = {1,1000,10,100};
		
		
		for(int value: s.solution(numbers)) {
			
			System.out.println(value);
		}
		
	}
}

 

 

 

package practice;

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

public class Solution {
	public int[] solution(int[] numbers) {
		int anum = (numbers.length - 1) * numbers.length / 2;
		int[] answer = new int[anum];
		ArrayList<Integer> list = new ArrayList<Integer>();
		int num = 0;

		// answer배열 더한 값 저장
		for (int i = 0; i < numbers.length; i++) {
			for (int j = i + 1; j < numbers.length; j++) {
				answer[num] = numbers[i] + numbers[j];
				num++;
			}
		}

		// answer 중복값 제거 후 list에 저장
		for (int value : answer) {
			if (!list.contains(value)) {
				list.add(value);
			}
		}

		answer = new int[list.size()];
		num = 0;
		// list값 정렬하기
		Collections.sort(list);
		// 다시 answer 배열에 저장
		for (int value : list) {
			answer[num] = value;
			num++;
		}

		return answer;
	}

}

이제 이 클래스에 대해서 하나하나 설명해 드릴게요!

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

이 두개를 import한 이유는 arrylist를 통해서 중복된 값을 좀더 쉽게 제거하기 위한 것