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

Yuno·2024년 7월 1일

Java)코테 연습

목록 보기
7/18

https://school.programmers.co.kr/learn/courses/30/lessons/120844?language=java

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; i++) {
                answer[(i + 1) % numbers.length] = numbers[i];
            }
        } else if (direction.equals("left")) {
            for (int i = 0; i < numbers.length; i++) {
                answer[i] = numbers[(i + 1) % numbers.length];
            }
        }
        return answer;
    }
}

문제풀이

접근방식

배열을 한쪽방향으로 이동시키기 위해 반복문을 통해 나머지 연산으로 처리하였고, 문자열 String으로 입력받은 값을 통해 반복문이 동작하도록 equals 메서드 사용.

배열 선언과 초기화

  • answer 배열은 numbers배열과 동일한 길이로 생성. 해당 배열은 이동된 결과를 담을 공간으로 사용됨

각 방향으로 이동하는 경우

  • if (direction.equals("right")) { }
    else if (direction.equals("left")) { }
    로 입력값이 right 또는 left에 따라 동작하도록 설계.

right 인 경우

answer[(i + 1) % numbers.length] 는 배열의 길이를 벗어나지 않도록 하기위한 계산. 예를들어 배열의 마지막 요소 다음에는 첫번째 요소로 이동하며, 해당값은 numbers[i]의 값이 저장됨

left 인 경우

numbers 배열에서 (i + 1) % numbers.length 위치의 값을 가져와 answer배열의 현재 위치 i에 할당됨

profile
Hello World

0개의 댓글