[알고리즘문제풀기] 배열 회전시키기

silver's avatar
Dec 15, 2025
[알고리즘문제풀기] 배열 회전시키기

문제

내가 작성한 정답

import java.util.stream.*; class Solution { public int[] solution(int[] numbers, String direction) { int len = numbers.length; return IntStream.range(0,len) .map(i -> numbers[(i+(direction.startsWith("r")?-1:1)+len)%len]) .toArray(); } } import java.util.stream.*; class Solution { public int[] solution(int[] numbers, String direction) { int len = numbers.length; boolean right = direction.equals("right"); return IntStream.range(0,len) .map(i->{ if(right) return i == 0 ? numbers[len-1] : numbers[i-1]; else return i == len-1 ? numbers[0] : numbers[i+1]; }) .toArray(); } } class Solution { public int[] solution(int[] numbers, String direction) { int len = numbers.length; int[] answer = new int[len]; if(direction.startsWith("r")){ answer[0] = numbers[len-1]; for(int i=1; i<len; i++){ answer[i] = numbers[i-1]; } } else { answer[len-1] = numbers[0]; for(int i=0; i<len-1; i++){ answer[i] = numbers[i+1]; } } return answer; } }

다른 사람들의 정답

import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; class Solution { public int[] solution(int[] numbers, String direction) { List<Integer> list = Arrays.stream(numbers).boxed().collect(Collectors.toList()); if (direction.equals("right")) { list.add(0, list.get(list.size() - 1)); list.remove(list.size() - 1); } else { list.add(list.size(), list.get(0)); list.remove(0); } return list.stream().mapToInt(Integer::intValue).toArray(); } }
Share article

silver