배열 회전시키기 [CT]

성배·2025년 1월 13일
1

코딩테스트

목록 보기
19/53

정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.

생각한 풀이
1. 크기가 같은 새로운 배열을 만든다
2. rigth이면 오른쪽으로 한 칸씩 회전하므로 주어진 배열의 마지막 값이 처음으로 온다
3. left이면 왼쪽으로 한 칸씩 회전하므로 주어진 배열의 첫번째 값이 마지막으로 간다


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

🐴 풀이
1. 크기가 같은 배열 생성
2. direction이 right라면 answer 첫번째 값에 numbers의 마지막 값을 넣고 for문을 통해 i=1부터 numbers.length까지 answer에 값을 넣는다
3. 이때 answer에서는 0번째 인덱스에 numbers의 마지막 값이 들어있어 i=1부터이고 numbers에서는 첫번째 값부터 넣기 때문에 i-1 부터 즉 첫번째 값부터 넣는다.
4. direction이 left라면 for문을 통해 i=0부터 numbers.length-1까지 answer에 값을 넣는다
5. numbers의 두 번째 값부터 마지막 인덱스 앞까지 넣고 for문이 끝난 후 answer의 마지막 인덱스 값을 numbers의 첫번째 값을 넣는다

 

Today's Quote

과시는 결핍이다

0개의 댓글