티스토리 뷰

[반성문]

2021 06 05_반성문

Sky_ 2021. 6. 5. 21:09

프로그래머스 두 개 뽑아서 더하기 문제...

오늘거의 8시간을 풀었다

 

이게 코드에 취한걸까?

 

머리가 이상하다

 

 

 

c 겨우 풀고

 

자바로 옮겼는데

 

뭔짓을해도

 

에러가났다

 

그래서 그냥 다른분이 푸신거를

 

붙여넣기해버렷다

 

반성한다...


=

나중에 자바짱을 먹으면...

그땐 꼭 풀도록 하겠다

 

그럼이만!

 

 

문제 설명

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

 

입출력 예

numbers result
[2,1,3,4,1] [2,3,4,5,6,7]
[5,0,2,7] [2,5,7,9,12]

 

 

바보의 코드 

검토할 힘이 없으니 다음번에 하도록 하겟다!

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = null;
        int index = numbers.length*(numbers.length-1);
        answer = new int[index];
        int count=0;
    
        for(int i=0;i<numbers.length;i++){
            for(int j=i+1;j<numbers.length;j++){
                int value = numbers[i]+numbers[j];
                boolean same = false;
                for(int z=0;z<count;z++){
                    if(answer[z]==value) same = true;
                }
                if(same == false)
                    answer[count++] = value;
            }
        }
        
        //정렬
        for(int i=0;i<count;i++){
            for(int j=i+1;j<count;j++){
                int temp;
                if(answer[i]>=answer[j]){
                    temp = answer[i];
                    answer[i] = answer[j];
                    answer[j] = temp;
                }
            }
        }
        for(int i=0;i<count;i++){
            System.out.print(answer[i]+"  ");    
        }
        
        return answer;
    }
}

 

 

붙여넣기 코드

import java.util.ArrayList;
import java.util.Arrays;

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 a = numbers[i]+numbers[j];
                if (list.indexOf(a) < 0){
                	list.add(a);
                }
            }
        }
        
        int[] answer = new int[list.size()];
        for (int i = 0; i < list.size(); i++) {
            answer[i] = list.get(i);
        }
        Arrays.sort(answer);

        return answer;
    }
}

'[반성문]' 카테고리의 다른 글

2021 06 02_반성문  (1) 2021.06.02
댓글