W 개발 일지

프로그래머스 - 두 개 뽑아서 더하기 JAVA 본문

JAVA/프로그래머스

프로그래머스 - 두 개 뽑아서 더하기 JAVA

waVwe 2021. 3. 24. 17:38
반응형

 

문제 설명

정수 배열 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
import java.util.*;
 
class Solution {
    public int[] solution(int[] numbers) {
        ArrayList<Integer> list = new ArrayList<Integer>();
        
        for ( int i = 0; i < numbers.length ; i++ ){
            for(int j = i + 1 ; j < numbers.length ; j++ ){
                int n = numbers[i] + numbers[j];
 
                if ( list.indexOf(n) < 0){
                    list.add(n);
                }
            }
        }
        
        int[] answer = new int[ list.size() ];
 
        for(int i = 0 ; i < list.size() ; i++ ){
            answer[i] = list.get(i);
        }
 
        Arrays.sort(answer);
 
        return answer;
    }
}
cs

 

코드에 쓰인 메소드 

- .indexOf( ) :  특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스 반환, 찾지 못 했을 경우 "-1" 반환.

- List.get( ) : 인자로 인덱스를 받아 이 인덱스의 위치에 있는 객체 반환.

- Arrays.sort( ) : 배열을 넣으면 오름차순으로 정렬.

 

코드 설명 : ArrayList 객체인 list를 만들어 numbers 원소의 합을 넣되, indexOf의 값이 -1일 때만 넣도록 한다. ( 중복 제거 해야하기 때문) answer 배열을 list의 크기만큼 만든 후, list의 객체를 answer에 넣어서 답을 구함.

 

출처 : programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

반응형