코딩테스트/프로그래머스

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

블로그 주인장 2023. 8. 28.

🎁 문제 링크

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

🎁 문제 설명

  • 문자열 s가 매개변수로 주어집니다. s에서 한 번만 등장하는 문자를 사전 순으로 정렬한 문자열을 return 하도록 solution 함수를 완성해보세요. 한 번만 등장하는 문자가 없을 경우 빈 문자열을 return 합니다.

🎁 입출력 예시

numbers direction result
[1, 2, 3] "right" [3, 1, 2]
[4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]

🎁 코드

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

🎁 코드 설명

1) 배열에 있는 수를 direction에 맞게 옮겨서 도출하는 문제이다.

2) for 반복문을 이용하여 right인 경우에는 맨 마지막을 제외하곤 [i + 1] 위치에 넣고, 마지막 인덱스만 [i]를 대입해준다.

3) left 인 경우네는 처음만 [numbers.length -i -1] 위치에 넣고 나머지는 [i - 1] 위치에 넣는다.

반응형

댓글