썬키의 개발노트

[JAVA-120844] 배열 회전시키기 본문

알고리즘/프로그래머스

[JAVA-120844] 배열 회전시키기

썬키 2023. 1. 18. 14:21
 

프로그래머스

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

programmers.co.kr

링크를 클릭하면 해당 문제로 이동합니다.

 

 

출처 : 프로그래머스

 


 

1. 접근하기

우선, 순서가 바뀐 원소들을 담을 새로운 배열을 생성하고 문자열 direction이 left일 때는 배열 numbers의 0번째 인덱스에 해당하는 원소는 맨 끝으로 이동하고, direction이 right일 때는 배열 numbers의 마지막 인덱스는 맨 앞으로 이동하는점을 염두에 두고 나머지 원소들을 이동시키면 되겠다고 생각했다.

 

TO-DO
1) 순서가 바뀐 원소들을 담을 새로운 배열을 생성하기
2) 문자열에 따라 로직을 달리 실행해야 하므로 for-if문 작성하기

 

 

2. 코드

class Solution {
    public int[] solution(int[] numbers, String direction) {
        int[] answer = new int[numbers.length];
        
        // ArrayIndexOufOfBounds 예외를 막기 위해 조건식은 배열-1로 지정
       for (int i = 0; i < numbers.length - 1; i++) {
			if (direction.equals("right")) {
				answer[0] = numbers[numbers.length - 1];
				answer[i + 1] = numbers[i];
			} else if (direction.equals("left")) {
				answer[numbers.length - 1] = numbers[0];
				answer[i] = numbers[i + 1];
			}
		}
        
        return answer;
    }
}

 

3. 결과

 

4. 리뷰

다른 사람들의 풀이를 보니까 다 비슷비슷하게  푼 거 같았다.

냅다 문제 풀기 전에 어떻게 코드를 짜야할지 노트에 적어보는 습관은 참 좋은거 같다.

이번 문제도 한 2-30분 정도 손코딩을 해보고 나온 결과이다. 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[JAVA-120890] 가까운 수  (0) 2023.01.19
[JAVA-120846] 합성수 찾기  (0) 2023.01.18
[JAVA-120815] 피자 나눠 먹기(2)  (0) 2023.01.18
[JAVA-120893] 대문자와 소문자  (0) 2023.01.17
[JAVA-120849] 모음 제거  (0) 2023.01.17