문제
내가 작성한 정답
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