본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] 배열 회전시키기

by 코딩하는 흰둥이 2023. 3. 10.

 

  • 내 풀이
import java.util.Arrays;
class Solution {
    public int[] solution(int[] numbers, String direction) {
        int[] answer = {};
        
        answer = new int[numbers.length];

        if(direction.equals("right")) {
            answer[0] = numbers[numbers.length - 1];
            for (int i = 0; i < numbers.length - 1; i++) {
                answer[i + 1] = numbers[i];
            }
        } else if (direction.equals("left")) {
            answer[numbers.length -1] = numbers[0];
            for (int i = 1; i < numbers.length; i++) {
                answer[i-1] = numbers[i];
            }
        }
        
        return answer;
    }
}

direction 값에 따라서 for문이 시작전 해당 값을 넣고 for문이 동작

 

 

  • 다른 사람 풀이(stream , for문)
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();
    }
}




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

stream 코드를 제외하고는 대부분의 코드들이 비슷비슷하다.

댓글