https://programmers.co.kr/learn/courses/30/lessons/68644
코딩테스트 연습 - 두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한
programmers.co.kr
중복 제거해주는 hashset 이용해서 풀려고 했는데 hashset을 배열로 어떻게 변환하는지 몰라서 엄청 헤매다가
결국 arraylist로 풀었다..
자바 자료구조 공부 다시 해야 할 듯..
arraylist 사용한 이유 -> 배열과 다르게 동적으로 크기 설정 가능, 특정 값 확인 가능
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
int[] answer = {};
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i=0;i<numbers.length;i++){
for(int j=i+1;j<numbers.length;j++){
int num=numbers[i]+numbers[j];
if(!list.contains(num)) {
list.add(num);}
}
}
answer = new int[list.size()];
for(int i=0;i<answer.length; i++){
answer[i] = list.get(i);
}
Arrays.sort(answer);
return answer;
}
}
'알고리즘 > 문제 풀이' 카테고리의 다른 글
[Java] 프로그래머스 > 소수찾기 (0) | 2022.01.13 |
---|---|
[Java] 프로그래머스 > 자릿수 더하기 (0) | 2022.01.13 |
[Java] 프로그래머스 > 폰켓몬 (0) | 2021.12.31 |
[Java] 백준 9251번 LCS (0) | 2021.11.09 |
[Java] 백준 11054번 가장 긴 바이토닉 부분 수열 (0) | 2021.11.09 |
댓글