티스토리 뷰

 

top !  인덱스가 같은 것 끼리 더할 수 없다. 꼭 서로 다른 인덱스의 값 끼리만 더해야합니다.

 

1. List로 풀기

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
31
32
33
34
package level1;
 
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
 
public class SelectTwoNumber2 {
    public static int[] solution(int[] numbers) {
        List<Integer> list = new ArrayList<Integer>();
 
        for (int i = 0; i < numbers.length; i++) {
            for (int j = i + 1; j < numbers.length; j++) {
                int sum = numbers[i] + numbers[j];
                if (!list.contains(sum)) {
                    list.add(sum);
                }
            }
        }
        
        int[] answer = new int[list.size()];
        int count = 0;
        for (int i : list) {
            answer[count++= i;
        }
        Arrays.sort(answer);
        return answer;
    }
 
    public static void main(String[] args) {
        int[] numbers = { 21341 };
        System.out.println(Arrays.toString(solution(numbers)));
    }
}
 
cs

list<Integer>를 int[] answer형으로 변경하는게 시간이 걸렸어요.

foreach문으로 해결!!

 

2. Map으로 풀기

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
31
32
33
34
35
36
37
38
39
40
package level1;
 
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
 
public class SelectTwoNumber {
    public static int[] solution(int[] numbers) {
        Map<Integer, Integer> map = new HashMap<Integer, Integer> ();
        
        for (int i = 1; i < numbers.length; i++) {
             int num = numbers[i];
             
             for (int j = 0; j < numbers.length; j++) {
                 if(i != j) {
                     int mapNum = num + numbers[j];
                     
                     map.put(mapNum, mapNum);
                     mapNum = 0;
                 }
            }
             num = 0;
        }
        
        int[] answer = new int[map.size()];
        int index = 0;
        for ( int key : map.keySet()) {
            answer[index++= key;
        }
        
        Arrays.sort(answer);
        return answer;
    }
    
    public static void main(String[] args) {
        int[] numbers = {5,0,2,7};
        System.out.println(solution(numbers));
    }
}
 
cs

Map도 list와 비슷한 형식으로 풀었습니다.

홧팅홧팅!

출처 - https://band.us/band/63102665/post/72

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[Level 1] 핸드폰 번호 가리기  (0) 2020.10.22
댓글