Link
https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=java
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
import java.util.*;
class Solution {
public List<Integer> solution(int[] numbers) {
HashSet<Integer> answer = new HashSet<Integer>();
for (int i=0; i < numbers.length;i++) {
for(int j=i+1; j < numbers.length; j++) {
answer.add(numbers[i] + numbers[j]);
}
}
List<Integer> last_answer = new ArrayList<>(answer);
Collections.sort(last_answer);
return last_answer;
}
}
- i는 처음(i=0)부터 j는 i의 다음(j=i+1) 부터 이중반복문을 돌리며 2개씩 뽑아 더하는 모든 경우의 수를 커버한다
- Set을 이용하여 중복을 제거한다
- 정렬하기위해 List<Integer>타입으로 전환하고 Collections 클래스의 sort()메서드 활용해 오름차순 정렬한다
- return 타입을 int[]에서 List<Integer>로 수정했는데도 정답이 되는이유?
- Collections는 Object를 상속받는 클래스로서 정렬(sorting), 섞기(shuffle), 탐색(searching) 등의 알고리즘 메서드 포함한다.
cf) Collection은 Set, List, Queue 등 인터페이스의 상위 인터페이스이고 collection은 데이터 집합이나 그룹 의미
'Algorithm' 카테고리의 다른 글
[Programmers/Java] 푸드 파이트 대회 (0) | 2025.03.21 |
---|---|
[Programmers/Java] 숫자 문자열과 영단어 (0) | 2025.03.20 |
[Python] programmers 방문 길이- 좌표 이동 구현 (0) | 2021.11.10 |
[Python] programmers 스킬트리 - for ~ else구문, pop (0) | 2021.11.10 |
[Python] 백준 #1316 그룹 단어 체커 - sorted() (0) | 2021.11.08 |