https://school.programmers.co.kr/learn/courses/30/lessons/68644
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이
numbers의 길이는 2 이상 100 이하이므로 이중 for문을 사용하여 두 개의 수를 더한 수를 ArrayList에 추가한다. Set이 아닌 ArrayList에 추가하는 이유는 이후 오름차순으로 배열에 저장해야 하기 때문에 Collections.sort() 메서드를 사용하기 위함이다.
로직
1. List<Integer> list를 선언한다.
2. 이중 for문을 사용하여 두 개의 수를 뽑는다.
3. 뽑은 두 개의 수를 더한 수가 list에 없다면, list에 추가한다.
4. Collections.sort() 메서드를 사용하여 list를 정렬한다.
5. stream() 메서드를 사용하여 int 배열로 변환한다.
List<Integer> -> Integer Stream -> int Stream -> int 배열
list.stream()
.mapToInt(Integer::intValue)
.toArray();
코드
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = {};
List<Integer> list = new ArrayList<>();
for (int i = 0; i < numbers.length-1; i++) {
for (int j = i+1; j < numbers.length; j++) {
int num = numbers[i] + numbers[j];
if (!list.contains(num))
list.add(num);
}
}
Collections.sort(list);
answer = list.stream()
.mapToInt(Integer::intValue)
.toArray();
return answer;
}
}
728x90
'Algorithm 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 : 게임 맵 최단거리 - 자바[Java] (0) | 2022.10.24 |
---|---|
[프로그래머스] Lv.1 : 모의고사 - 자바[Java] (0) | 2022.10.18 |
[프로그래머스] Lv.2 : [1차] 캐시 - 자바[Java] (0) | 2022.10.07 |
[프로그래머스] Lv.1 : [1차] 다트 게임 - 자바[Java] (0) | 2022.10.07 |
[프로그래머스] Lv.1 : [1차] 비밀지도 - 자바[Java] (0) | 2022.10.04 |