import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int[] solution(int[] numbers, String direction) {
List<Integer> nums = Arrays.stream(numbers)
.boxed()
.collect(Collectors.toList());
int removeValue = 0;
if (direction.equals("right")) {
removeValue = nums.get(nums.size() - 1);
nums.remove(nums.size() - 1);
nums.add(0, removeValue);
} else {
removeValue = nums.get(0);
nums.remove(0);
nums.add(nums.size(), removeValue);
}
return nums.stream()
.mapToInt(Integer::intValue)
.toArray();
}
}
์ ๋ฒ์ int Array๋ฅผ List<Integer>๋ก ๋ณํํ๋ ๊ฒ์ด์๊ณ , ์ด๋ฒ์๋ ๊ทธ ๋ฐ๋๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ ์ค ์คํธ๋ฆผ์ ์ด์ฉํ๋ค.
์ฒ์์๋ num.stream().toArray()
๋ก ์์ฑ์ ํ์๋๋ฐ, error: incompatible types: Object[] cannot be converted to int[]
๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
๊ณต์๋ฌธ์๋ฅผ ์ฐพ์๋ณด๋ stream()
์ด๋ผ๋ ๋ฉ์๋๋ Collection ํด๋์ค์ ์ํด์๊ณ , toArray()
๋ Stream ํด๋์ค์ ์ํด์์ผ๋ฉฐ ๋ฐํํ์
์ด Object[]์๋ค. (List ํด๋์ค๋ Collection ํด๋์ค๋ฅผ ์์๋ฐ๊ณ ์๊ธฐ ๋๋ฌธ์ stream()
๋ฉ์๋ ์ด์ฉ์ด ๊ฐ๋ฅํ๋ค.)
๋ด๊ฐ ์ํ๋ ํ์
์ธ int[]๋ฅผ ์ป๊ธฐ ์ํด์๋ ๋จ์ Stream ํ์
์ด ์๋ IntStream ํด๋์ค์ toArray()
๋ฉ์๋๋ฅผ ์ด์ฉํ์ด์ผ ํ๊ณ , Stream์์ IntStream์ผ๋ก ํ์
์ ๋ณํํ๊ธฐ ์ํด์๋ Stream ํด๋์ค์ mapToInt()
๋ฉ์๋๋ฅผ ์ด์ฉํ๋ฉด ๋๋ ๊ฒ์ด์๋ค.
ํญ์ IDE์ ์ถ์ฒ ๊ธฐ๋ฅ์ ์ฐ๋ค๊ฐ ์ค์ค๋ก ์ฝ๋๋ฅผ ๋ค ์ง๋ ค๋ ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ต์ํ์ง ์์ ๊ฒ ๊ฐ๋ค.
๋ํ ๋ค๋ฅธ ํ์ด๋ฅผ ๋ณด๋ ์์๋ฅผ ์ผ์์ ์ผ๋ก ์ ๊ฑฐํ๊ธฐ ์ ์, ๋จผ์ ๋ฆฌ์คํธ์ ์ถ๊ฐํ ํ ์ ๊ฑฐํ์ผ๋ฉด ์ฝ๋๊ฐ ๋ ๊น๋ํ์ ํ ๋ฐ ๊ทธ ์๊ฐ๊น์ง๋ ํ์ง ๋ชปํ๋ค.
์ฐธ๊ณ - ๋ค๋ฅธ ํ์ด