https://school.programmers.co.kr/learn/courses/30/lessons/68644
배열의 값 중 두 개 수를 뽑아 만들 수 있는 모든 수를 오름차순으로 담기
가장 단순한 방법은 이중for문을 이용해서 모든 경우의 수를 탐색하고, 결과로 나온 경우의 수를 set에 넣어서 중복을 제거하는 방법일 것입니다.
그리고 Set으로 나온 결과를 다시 Array로 변경하여 return하는 형태로 작성하였습니다.
import java.io.*;
import java.util.*;
class Solution {
public Integer[] solution(int[] numbers) {
Integer[] answer = {};
// set 생성
TreeSet<Integer> set = new TreeSet<>();
for(int i = 0; i < numbers.length - 1; i++) {
for(int j = i + 1; j < numbers.length; j++) {
set.add(numbers[i] + numbers[j]);
}
}
// System.out.println(set);
// set -> array
answer = set.toArray(new Integer[0]);
Arrays.sort(answer);
return answer;
}
}
원래 문제는 HashSet을 이용하여서 해결하였습니다.
다만 HashSet은 정렬이 이뤄지지 않으므로 별도의 sort 작업을 필요로 합니다.
대신 TreeSet을 이용하면 정렬된 sort가 나오기 때문에 별도의 sort 작업 없이도 결과를 도출할 수 있습니다.
~~
해당 코드는 에디터가 코드 연습을 위해 직접 작성하였습니다.
혹시 오류가 있거나 더 좋은 코드 방향성을 아시는 분은 댓글로 남겨주시면 감사하겠습니다!
python source : https://github.com/ssh5212/conding-test-practice
java source : https://github.com/ssh5212/coding-test-java
[Baekjoon] 백준 17406 배열 돌리기 4 (G4 / 구현) - Java (1) | 2023.08.29 |
---|---|
[Baekjoon] 백준 2174 로봇 시뮬레이션 (G5 / 구현) - Java (1) | 2023.08.28 |
[Programmers] 1844 게임 맵 최단거리 (L2 / BFS) - Java (1) | 2023.04.16 |
[Baekjoon] 백준 14502 연구소 (G4 / DFS, BFS) - Java (1) | 2023.04.15 |
[Baekjoon] 백준 16919 봄버맨 2 (G4 / 구현) - Java (1) | 2023.04.09 |