728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/68644
풀이
Level 1 문제임
엄청 쉬운 완전 탐색 문제인 듯??
숫자 두개를 뽑아서 더하면 같은 결과가 나올 수 있는데 문제를 보면 같은 결과는 같다고 판단하는 것을 알 수 있음. 그래서 Set에다가 추가했는데, Set을 List로 바꿔서 배열을 선언 후에 차례대로 배열에 넣어줬음.
근데
List<Integer> answerList = answerSet.stream().toList();
이 문법(stream().toList())은 프로그래머스에서 아직 지원을 안하는 듯?
그래서
for (int temp : answerSet) {
answerList.add(temp);
}
이렇게 List에 넣어줬음!
자세한건 주석으로 !
코드
// 코딩테스트 연습 - 월간 코드 챌린지 시즌1 - 두 개 뽑아서 더하기
// https://school.programmers.co.kr/learn/courses/30/lessons/68644
package PROGRAMMERS.level1;
import java.util.*;
public class Num68644_두개뽑아서더하기 {
private static class Solution {
public int[] solution(int[] numbers) {
Set<Integer> answerSet = new HashSet<>();
for (int i = 0; i < numbers.length - 1; i++) {
for (int j = i + 1; j < numbers.length; j++) {
answerSet.add(numbers[i] + numbers[j]);
}
}
int[] answer = new int[answerSet.size()];
List<Integer> answerList = new ArrayList<>();
for (int temp : answerSet) {
answerList.add(temp);
}
Collections.sort(answerList);
for (int i = 0; i < answer.length; i++) {
answer[i] = answerList.get(i);
}
return answer;
}
public static void main(String[] args) {
Solution sol = new Solution();
System.out.println(sol.solution(new int[]{2, 1, 3, 4, 1}));
System.out.println(sol.solution(new int[]{5, 0, 2, 7}));
}
}
}
728x90