본문 바로가기
프로그래밍/프로그래머스

프로그래머스 Level 1 JAVA 월간 코드 챌린지 시즌1 두 개 뽑아서 더하기

by ✲ 2020. 9. 16.
반응형
프로그래머스 Level1 > 코딩테스트 연습 > 월간 코드 챌린지 시즌1 > 두 개 뽑아서 더하기 

문제설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 return 하도록 solution 함수를 완성해주세요. ( 프로그래머스 문제 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
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 sum  = numbers[i]+numbers[j];
                if(!list.contains(sum)){
                    list.add(sum);
                }
            }
        }
        Collections.sort(list);
        
        answer = new int [list.size()];
 
        int index = 0;
        for(int num: list) {
            answer[index] = num; 
            index++;
        }
 
        return answer;
    }
    
}
cs

 

공부한 내용 

* 배열(Array)의 길이는 length 확인 

* 배열리스트 (ArrayList)의 길이는 size 확인 

* contains 메소드 : list 안에 항목 값이 있는지 확인 후, 결과 값을 boolean 반환 

* Collections.sort() : ArrayList 정렬할 때 사용  

* 향상된 for문 for (int num : list) { } : answer[index] = num; num에 list의 값을 순서대로 넣어준다는 의미! 

* Iterator : 어떤 컬렉션이라도 동일한 방식으로 접근이 가능하여 그 안에 있는 항목들에 접근할 수 있는 방법을 제공 (ex) 리스트에서 값을 가져올 때는 get을 사용, 배열에서 값을 가져올 때는 index를 사용하는 등 각각 데이터를 읽는 메소드를 알아야하고, 각각 컬렉션 접근이 어려움 > lterator을 이용하면 동일한 방식으로 접근 > 향상된 for문 

* lterator 정리한 블로그 참고 사이트 

반응형

댓글