[문제설명]
처음 ArrayList로 배열을 넣을 통을 만들고
i와 j에 인덱스 번호를 부여하여 각 인덱스에 있는 숫자를 더하는 것 까지는 잘 생각해서 적었는데
중복되는 부분을 어떻게 빼면 좋을지에 대한 간단한 코드가 아직은 생각나지 않았다ㅜㅜ
분명 알고리즘을 풀면서 한 3번은 반복해서 썼던 것 같은데
문제가 바뀌고 코드가 바뀌면 그 안에 응용해서 넣는 능력이 너무 부족한 것같다..
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int[] solution(int[] numbers) {
ArrayList<Integer> list = new ArrayList<>();
for (int i=0; i< numbers.length-1; i++) {
for (int j=i+1; j<numbers.length; j++) {
int plus = numbers[i]+numbers[j];
if (!list.contains(plus)) { // 이부분을 생각하는데 까지 너무 오래 돌아간것같다.
list.add(plus);
}
}
}
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++) {
answer[i] = list.get(i);
}
Arrays.sort(answer);
return answer;
}
}
그래도 처음과는 다른 점은 내가 스스로 어떤 함수를 써야하고 어떻게 풀어가면 좋을지 스스로 생각하는 능력이 아주 조금은 키워진 것 같다.
문제를 계속 풀고 코드를 계속 쳐보면서 더 익혀야겠다..
'코딩 공부 > 프로그래머스' 카테고리의 다른 글
(프로그래머스) Lv.0 삼각형의 완성조건(1) (0) | 2023.04.12 |
---|---|
(프로그래머스)Lv0.짝수와 홀수 개수 (0) | 2023.04.11 |
(프로그래머스)Lv.0 피자나눠먹기(1) (0) | 2023.04.11 |
(프로그래머스)Lv0. 두 수의 나눗셈 (1) | 2023.04.11 |