반응형
배열 회전시키기
문제 설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다.
배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return 하도록 solution 함수를 완성해 주세요.
입출력 예 #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 합니다.
java code
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")){
answer[(i+1)%numbers.length] = numbers[i];
}else answer[i] = numbers[(i+1)%numbers.length];
}
return answer;
}
}
int[] answer = new int[numbers.length];
- "answer" 배열을 "numbers" 배열과 같은 크기로 생성합니다.
for (int i = 0; i < numbers.length; i++)
- "numbers" 배열의 모든 원소를 순회합니다.
System.out.println((i + 1) % numbers.length);
- 현재 반복문이 몇 번째인지 확인하기 위한 디버깅 코드입니다.
if (direction.equals("right"))
- 회전 방향이 "right"인 경우 실행됩니다.
answer[(i + 1) % numbers.length] = numbers[i];
- "numbers" 배열의 i번째 원소를 (i+1) % numbers.length번째에 저장합니다. 이를 통해 회전 방향에 따라 배열을 이동시킬 수 있습니다.
System.out.println("answer[i] = " + answer[i]);
- 현재 저장된 "answer" 배열의 값을 확인하기 위한 디버깅 코드입니다.
else answer[i] = numbers[(i+1)%numbers.length];
- 회전 방향이 "left"인 경우 실행됩니다. "numbers" 배열의 (i+1)%numbers.length번째 원소를 "answer" 배열의 i번째에 저장합니다.
python code
def solution(numbers, direction):
answer = [0] * len(numbers)
for i in range(len(numbers)):
if direction == "right":
answer[(i + 1) % len(numbers)] = numbers[i]
else:
answer[i] = numbers[(i + 1) % len(numbers)]
return answer
반응형
'algorithm' 카테고리의 다른 글
[프로그래머스]약수 구하기 -java,python (0) | 2023.03.09 |
---|---|
[프로그래머스]외계행성의 나이 - java, python (0) | 2023.03.09 |
[프로그래머스]가장 큰 수 찾기 - java,python (0) | 2023.03.08 |
[프로그래머스]인덱스 바꾸기 - java,python (0) | 2023.03.08 |
[프로그래머스]최댓값 만들기 (2) - java, python (0) | 2023.03.08 |
댓글