알고리즘테스트/Programmers

[Lv.0_Java] 배열 회전 시키기

코딩거인 2023. 8. 16. 11:09
728x90

 

class Solution {
    public int[] solution(int[] numbers, String direction) {
        int[] answer = new int [numbers.length];
        if(direction.equals("right")){
            int k = 1;
            for(int i = 0; i < numbers.length-1; i++){
                answer[0] = numbers[numbers.length - 1];
                answer[k++] = numbers[i];
            }
        }else{
            int k = 0;
            for(int i = 1; i < numbers.length; i++){
                answer[k++] = numbers[i];
                answer[answer.length-1] = numbers[0];
            }
        }
        return answer;
    }
}

direction의 값에 따라 배열을 달리 움직여야 하기에 나는 if - else 를 사용하여 나눠주었고 그 안에 알맞은 for 문을 돌려서 answer 배열에 넣어주고 마지막값 혹은 첫번째 값만 바꿔 주었다!

import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

class Solution {
    public int[] solution(int[] numbers, String direction) {
        List<Integer> list = Arrays.stream(numbers).boxed().collect(Collectors.toList());

        if (direction.equals("right")) {
            list.add(0, list.get(list.size() - 1));
            list.remove(list.size() - 1);
        } else {
            list.add(list.size(), list.get(0));
            list.remove(0);
        }
        return list.stream().mapToInt(Integer::intValue).toArray();
    }
}

다른 사람 코드를 보니 list 를 사용하여  더 간단하게 해결하였다....!

728x90