본문 바로가기
카테고리 없음

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

by dantriss 2023. 2. 26.


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

 

이번 문제도 단순하게 풀었다.

if문에  문자열 direction이 right 일 때와 left일 때를 구분했고,

right 일 때 배열은 0번째 자리부터 시작이기 때문에 int배열 numbers의 길이의 -1만큼 반복문을 작성할 것이다.

answer[i+1] 즉 answer[1] 부터 숫자가 담기기 시작 할 텐데 오른쪽으로 한 칸씩 이동해야 하기 때문에 배열 numbers[0] 번째 숫자가 담기면 된다.

그 후 반복문 밖에 answer[0]에는 배열 numbers의 마지막 숫자가 들어가면 되기 때문에 [number.length-1]을해서 마지막 자릿수의 숫자를 담아준다.

 

이와 반대로 left도 작성해주면 된다.

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

댓글