프로그래머스 배열 회전시키기 문제 풀이

김하영·2023년 3월 27일
0

prePreCodingTest

목록 보기
7/15

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

사용한 자료구조 : 배열

배열은 인덱스로 데이터에 바로 접근할 수 있으므로!


찾아낸 규칙

오른쪽으로 회전 : 맨 뒤의 숫자가 맨 앞으로 오고 나머지는 그대로
왼쪽회전 : 맨 앞의 숫자가 맨 뒤로 가고 나머지는 그대로


코드 및 코드 설명

import java.util.ArrayList;

class Solution {
            public int[] solution(int[] numbers, String direction) {
            int[] answer;
            ArrayList<Integer> result = new ArrayList<>();
            
            if(direction.equals("right")){ // 오른쪽 회전
                result.add(numbers[numbers.length-1]); // 맨 뒤의 숫자를 맨 앞으로
                for(int i = 0; i<numbers.length-1; i++){ // 0번 인덱스 데이터부터 맨뒤 바로 앞까지를 그대로 결과 배열에 붙여준다.
                    result.add(numbers[i]);
                }
            } else if(direction.equals("left")){ // 왼쪽 회전
                for(int i = 1; i<numbers.length; i++){ //1번 인덱스 데이터부터 맨 뒤까지 결과배열에 붙여준디ㅏ.
                    result.add(numbers[i]);
                }
                result.add(numbers[0]); // 맨 앞의 데이터를 맨 뒤에 붙여준다.
            }
            answer = result.stream().mapToInt(i->i).toArray(); // ArrayList를 int[]로 바꿔 준다.
            return answer;
        }

}
profile
백엔드 개발자로 일하고 싶어요 제발

0개의 댓글