728x90
반응형
SMALL
손풀기 문제로 쉬워보이는 문제를 뽑아서 풀었는데
ArrayList 중복 제거 방법을 만들어보려고 하다가 살짝 헤맸다...
이 문제는 각각 순서대로
① 더한 값들을 모두 ArrayList에 저장
② ArrayList 중복 제거
③ ArrayList 값 배열에 넣기
④ 배열 정렬
위 방식대로 문제를 해결했다
되게 정석적이고 쉬운 방식이긴한데 소스가 길어져서 다른 훌륭한 답변이 있나
다른 분들 답을 구경했는데 세상에....
리턴 타입을 바꿔도 정답으로 처리가 된다
흠.... 그렇다면 내꺼 소스도 굳이 ArrayList를 배열로 변환하지 않아도 됬었겠다 생각이 들었다 ㅎㅎ
코테 문제는 문제를 풀고 다른 사람들은 어떻게 문제를 풀었는지 구경하는게 재밌는거같다!
정답
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] numbers) {
ArrayList<Integer> arr = new ArrayList<>();
ArrayList<Integer> arrSt = new ArrayList<>();
// 더한 값들을 모두 ArrayList에 저장
for(int i=0; i<numbers.length; i++){
for(int j=i+1; j<numbers.length; j++){
arr.add(numbers[i] + numbers[j]);
}
}
// ArrayList 중복 제거
arr = (ArrayList<Integer>) arr.stream().distinct().collect(Collectors.toList());
// 배열 생성
int[] answer = new int[arr.size()];
// ArrayList 값 배열에 넣기
for(int i=0; i<arr.size(); i++){
answer[i] = arr.get(i);
}
// 답 정렬
Arrays.sort(answer);
return answer;
}
}
출처
프로그래머스 - https://school.programmers.co.kr/learn/courses/30/lessons/68644
728x90
반응형
LIST
'코딩 테스트' 카테고리의 다른 글
프로그래머스) 숫자 문자열과 영단어 (0) | 2024.02.07 |
---|---|
프로그래머스) 약수의 개수와 덧셈 Lv1 (2) | 2024.02.06 |
프로그래머스) K번째 수 Lv1 (0) | 2024.02.05 |
프로그래머스) 기사단원의 무기 Lv1 (2) | 2024.02.05 |
프로그래머스) 대충 만든 자판 Lv1 (2) | 2024.02.04 |