Notice
Recent Posts
Recent Comments
Link
250x250
«   2025/02   »
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
Tags
more
Archives
Today
Total
관리 메뉴

거인의 코딩일지

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

알고리즘테스트/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