카테고리 없음
[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를 통해서 중복된 값을 좀더 쉽게 제거하기 위한 것