본문 바로가기

Java/프로그래머스

[JAVA] 프로그래머스 - 순서 바꾸기

https://school.programmers.co.kr/learn/courses/30/lessons/181891

 

프로그래머스

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

programmers.co.kr

 

 

 

 

두 개의 리스트 하나로 합치기 

 

List.addAll()

 

Java - 두개의 List를 하나로 합치는 방법 (codechacha.com)

 

Java - 두개의 List를 하나로 합치는 방법

두개의 List를 하나의 Lis로 합치는(join) 방법을 소개합니다. List.addAll(), Guava의 Iterables.unmodifiableIterable()와 Lists.newArrayList(), Apache의 ListUtils.union() 마지막으로 Stream을 이용하여 두개의 리스트를 하나

codechacha.com

 

- addAll()으로 인자로 전달된 리스트의 모든 아이템을 리스트에 추가할 수 있다. 

 

ex)

List<String> list1 = new ArrayList<>();
list1.add("a1");
list1.add("a2");

List<String> list2 = new ArrayList<>();
list2.add("b1");
list2.add("b2");

List<String> joined = new ArrayList<>();
joined.addAll(list1);
joined.addAll(list2);

System.out.println(joined);

 

 

정답 

 

import java.util.ArrayList;

class Solution {
    public int[] solution(int[] num_list, int n) {
        ArrayList<Integer> before = new ArrayList<>();
        ArrayList<Integer> after = new ArrayList<>();
        ArrayList<Integer> join = new ArrayList<>();
        
        for(int i=n; i<num_list.length; i++)
        {
            before.add(num_list[i]);
        }
        
        for(int i=0; i<n; i++)
        {
            after.add(num_list[i]);
        }
        
        join.addAll(before);
        join.addAll(after);
        
        int answer[] = new int[join.size()];
        
        for(int i=0; i<join.size(); i++)
        {
            answer[i] = join.get(i);
        }
        
        return answer;
    }
}