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

당당·2023년 4월 22일
0

프로그래머스

목록 보기
35/245

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

📔문제

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


🚫제한사항

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


📝입출력 예

numbersdirectionresult
[1, 2, 3]"right"[3, 1, 2]
[4, 455, 6, 4, -1, 45, 6]"left"[455, 6, 4, -1, 45, 6, 4]

📝입출력 예 설명

입출력 예 #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합니다.


🧮알고리즘 분류

  • 배열
  • 조건문
  • 반복문

📃소스 코드

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

📰출력 결과


📂고찰

만약 right 이면, 제일 첫 배열은 제일 마지막 수가 되고 그다음은 하나씩 이전꺼.

만약 left이면, 제일 첫 배열은 두번째 배열.. 이런식으로 마지막 배열은 제일 첫번째가 될 것.
profile
MySQL DBA 신입 지원

0개의 댓글