[코딩테스트] 프로그래머스 120844 배열 회전시키기
2022. 11. 17. 11:37ㆍCodingTest
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120844
접근방법
1. numbers 정수 배열과 같은 크기의 결과 배열 초기화
2. 배열의 왼쪽 방향으로 한칸씩 이동하는 경우
2.1 결과 배열의 i번째 값에 대해서 i+1번째 값을 저장, 만약 i번째가 마지막인 경우에는 (i+1) % n을 계산하여 저장
3. 배열의 오른쪽 방향으로 한칸씩 이동하는 경우
3.1 결과 배열의 i+1번째 값에 대해서 i번째 값을 저장, 만약 i번째가 마지막인 경우에는 (i+1) % n을 계산하여 저장
코드
class Solution {
public int[] solution(int[] numbers, String direction) {
if(direction.equals("left")){
return moveLeftArray(numbers);
}
return moveRightArray(numbers);
}
private int[] moveLeftArray(int[] numbers){
int n = numbers.length;
int[] result = new int[n];
for(int i = 0; i < n; i++){
result[i] = numbers[(i + 1) % n];
}
return result;
}
private int[] moveRightArray(int[] numbers){
int n = numbers.length;
int[] result = new int[n];
for(int i = 0; i < n; i++){
result[(i + 1) % n] = numbers[i];
}
return result;
}
}
'CodingTest' 카테고리의 다른 글
[프로그래머스] 바탕화면 정리 (0) | 2023.11.07 |
---|---|
[코딩테스트] 프로그래머스 120897 약수 구하기 (0) | 2022.11.21 |
[코딩테스트] 프로그래머스 49994, 방문길이 (0) | 2022.07.26 |
[코딩테스트] 프로그래머스 92335, k진수에서 소수 개수 구하기 (0) | 2022.07.25 |
[코딩테스트] 프로그래머스 42842, 카펫 (0) | 2022.07.17 |