본문 바로가기

카테고리 없음

TIL 2주 5일차

32. 두개 뽑아서 더하기

https://programmers.co.kr/learn/courses/30/lessons/68644

 

[풀이에 필요한 조건]

[해답]

import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        int sum=0;

        ArrayList<Integer> insert = new ArrayList<>();
        ArrayList<Integer> compare = new ArrayList<>();
        ArrayList<Integer> real_int = new ArrayList<>();

        for(int i=0;i< numbers.length;i++){
            insert.add(numbers[i]);
        }

        Collections.sort(insert);
        int count=insert.size();
        for(int i=0;i<count;i++){
            for(int j=0;j<insert.size()-1;j++){
                sum = insert.get(0)+insert.get(j+1);
                compare.add(sum);
            }
            insert.remove(0);
            if(i==insert.size()){
                sum=insert.get(0)+insert.get(1);
                compare.add(sum);
            }
        }

        real_int.add(compare.get(0));

        int cnt=0;
        for(int i=0;i<compare.size();i++){
            if(real_int.contains(compare.get(i))==false){
                real_int.add(compare.get(i));
            }
        }

        Collections.sort(real_int);
        int[] answer = new int[real_int.size()];
        for(int i=0;i<real_int.size();i++){

            answer[i] = real_int.get(i);
        }

        return answer;
    }
}
import java.util.*;

class Solution {
    public int[] solution(int[] numbers) {
        int sum=0;

        ArrayList<Integer> insert = new ArrayList<>();
        ArrayList<Integer> compare = new ArrayList<>();
        ArrayList<Integer> real_int = new ArrayList<>();

        for(int i=0;i< numbers.length;i++){
            insert.add(numbers[i]);
        }


        Collections.sort(insert);
        int count= insert.size();

        for(int i=0;i<count;i++){
            System.out.println("insert size 변화 확인용 = "+count);
            for(int j=0;j<insert.size()-1;j++){
                //System.out.println("현재 루틴 값 i : "+i);
                //System.out.println("현재 루틴 값 j : "+j);
                System.out.println("insert.get(0) 값 : "+insert.get(0));
                System.out.println("더해줄 값 : "+insert.get(j+1));

                sum = insert.get(0)+insert.get(j+1);
                compare.add(sum);
                System.out.println("결과 : "+sum+"\n===============================");
            }

            insert.remove(0);
            if(i==insert.size()){
                sum=insert.get(0)+insert.get(1);
                System.out.println(sum);
                compare.add(sum);//System.out.println("현재 루틴 값 i : "+i);
                //System.out.println("현재 루틴 값 j : "+j);
                System.out.println("insert.get(0) 값 : "+insert.get(0));
                System.out.println("더해줄 값 : "+insert.get(1));
                System.out.println("결과 : "+sum+"\n===============================");
            }
        }

        real_int.add(compare.get(0));

        for(int i=0;i<compare.size();i++){
            System.out.println("compare.get("+i+")="+compare.get(i));
        }

        System.out.println("=============================================");
        int cnt=0;
        for(int i=0;i<compare.size();i++){
            System.out.println("real_int.contains(compare.get("+i+")) = "+real_int.contains(compare.get(i)));
            if(real_int.contains(compare.get(i))==false){
                real_int.add(compare.get(i));
            }
        }

        Collections.sort(real_int);
        int[] answer = new int[real_int.size()];
        for(int i=0;i<real_int.size();i++){
            System.out.println("real_int.get("+i+")) = "+real_int.get(i));
            answer[i] = real_int.get(i);
        }

        return answer;
    }
}

public class Main {
    public static void main(String[] args) {
        Solution sol = new Solution();

        int[] num = {5,0,2,7,10,49,99,100,100,100};

        int[] result = sol.solution(num);

        System.out.println(Arrays.toString(result));
    }
}

 

더보기

n. 차후 추가를 위한 샘플

[문제설명]

[풀이에 필요한 조건]

[해답]