배열 회전시키기 Lv. 0

박영준·2023년 5월 9일
0

코딩테스트

목록 보기
70/300

문제 설명

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

class Solution {
    public int[] solution(int[] numbers, String direction) {
        int[] answer = {};
        return answer;
    }
}

제한 사항

  • 3 ≤ numbers의 길이 ≤ 20
  • direction은 "left" 와 "right" 둘 중 하나입니다.

입출력 예

입출력 예 설명

  • 입출력 예 #1

    • numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.
  • 입출력 예 #2

    • numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.

해결법

방법 1

class Solution {
    public int[] solution(int[] numbers, String direction) {
    
        int[] answer = new int[numbers.length];		// numbers 배열의 길이만큼 새로운 배열을 생성
        
        // 오른쪽 방향
        if (direction.equals("right")) {
            for (int i = 0; i < answer.length - 1; i++) {
                answer[i + 1] = numbers[i];		// 한 칸씩 뒤로 밀기 (+1씩)
            }
            
            answer[0] = numbers[numbers.length -1];		// 가장 마지막 인덱스 -> 가장 처음 인덱스로 옮기기
         
        // 왼쪽 방향 
        } else {
            for (int i = 0; i < answer.length - 1; i++) {
                answer[i] = numbers[i + 1];		// 한 칸씩 앞로 당기기 (-1씩)
            }
            
            answer[answer.length - 1] = numbers[0];		// 가장 처음 인덱스 -> 가장 마지막 인덱스로 옮기기
        }
        
        return answer;
    }
}
  • equals() 는 문자열 비교에 사용됨
    참고: ==, equals()
  • i < answer.length - 1
    : 배열의 마지막 인덱스는 배열의 길이에서 1을 뺀 값이다.

배열 회전시키기

profile
개발자로 거듭나기!

0개의 댓글