๐ก ์ข์ ์ฝ๋
์ด๋ฐ์๋ Arrays.copyofRange ํจ์๋ฅผ ํตํด์ ๊ฐ๋จํ๊ฒ ๋ฆฌ์คํธ๋ฅผ ์๋ผ์คฌ๊ณ
์ดํ n == 4 ์ผ ๋์๋ ๋์ ๋ฐฐ์ด์ ๋ถ๋ฌ์ค๊ณ ์ฐจ๋ก๋๋ก ์ฝ์ ํด์ค๋ค์์
๋์ ๋ฐฐ์ด์ ์ ์๋ฐฐ์ด๋ก ๋ณํํด์ฃผ๋ฉด ๋ !!
import java.util.*;
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
int a = slicer[0];
int b = slicer[1];
int c = slicer[2];
if(n ==1)
return Arrays.copyOfRange(num_list, 0, b+1);
if(n==2)
return Arrays.copyOfRange(num_list, a, num_list.length);
if(n==3)
return Arrays.copyOfRange(num_list, a, b+1);
List<Integer> result = new ArrayList<>(); // n = 4์ผ๋ ๋ฐ๋ก ๋ด์์ค ๋์ ๋ฐฐ์ด
for (int i = a; i <= b; i += c) {
result.add(num_list[i]); // ๋์ ๋ฐฐ์ด์ ์ถ๊ฐ
}
int[] answer = new int[result.size()]; // ์ ์๋ฐฐ์ด๋ก ๋ฐํํด์ผํ๋ฏ๋ก ๋ณํ์ํค๊ธฐ
for (int i = 0; i < result.size(); i++) {
answer[i] = result.get(i); // ์ฝ์
ํด์ฃผ๋ฉด ๋
}
return answer;
}
}
- Arrays.copyOf() : ๋ฐฐ์ด ์ ์ฒด๋ฅผ ๋ณต์ฌ
- Arrays.copyOfRange() : ํน์ ๋ฒ์๋ฅผ ๋ณต์ฌํฉ๋๋ค.
- IntStream.range() : ์ ์ ์คํธ๋ฆผ์ ์์ฑํ๋ ๋ฉ์๋
- map() ๊ฐ ์์์ ๋ํด ์ฃผ์ด์ง ํจ์๋ฅผ ์ ์ฉ
- toArray()๋ ์คํธ๋ฆผ์ ์์๋ฅผ ๋ฐฐ์ด๋ก ๋ณํํ๋ ์ต์ข ์ฐ์ฐ
import java.util.Arrays;
import java.util.stream.IntStream;
class Solution {
public int[] solution(int n, int[] slicer, int[] num_list) {
int[] answer = null;
int a = slicer[0], b = slicer[1], c = slicer[2];
switch (n) {
case 1:
answer = Arrays.copyOf(num_list, b + 1); // ์ฒ์ ~ b
break;
case 2:
answer = Arrays.copyOfRange(num_list, a, num_list.length); // a ~ ๋๊น์ง
break;
case 3:
answer = Arrays.copyOfRange(num_list, a, b + 1); //a, b ๊น์ง
break;
case 4:
answer = IntStream.range(0, (b - a) / c + 1).map(i -> num_list[a + i * c]).toArray();
// 0๋ถํฐ (b-a)/c+1 ๊น์ง ์ ์ ์คํธ๋ฆผ ์์ฑ
// ์์์ ์ ํ๋ ์์ i => ๋ฅผ a+i*c ๋ก ๊ณ์ฐ ํ => ์ ํ๋ ๊ฐ์ผ๋ก ์คํธ๋ฆผ ์์ฑ ํ
// ๋ฐฐ์ด๋ก ๋ฐํ
break;
}
return answer;
}
}
๐ญ 1์ฐจ ์ค๋ฅ : switch ๋ฌธ์์ case ๋ง๋ค break๋ฌธ์ ๋น ๋จ๋ ธ๋ค.
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public ArrayList <Integer> solution(int n, int[] slicer, int[] num_list) {
ArrayList <String> str_list = new ArrayList<String>();
ArrayList <Integer> answer = new ArrayList<>();
String str = Arrays.toString(num_list); //๋ฐฐ์ด ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ธฐ
str = str.replace("[", "").replace("]", "").replace(",","").replace(" ","");
int a = slicer[0];
int b = slicer[1];
int c = slicer[2];
switch (n) {
case 1:
str_list.add(str.substring(0,b+1));
case 2:
str_list.add(str.substring(a,num_list.length));
case 3:
str_list.add(str.substring(a,b+1));
case 4:
for (int i = a; i <= b; i+=c){ //1~5
str_list.add(String.valueOf(num_list[i]));
}
}
for (int j = 0; j<str_list.size(); j++){
answer.add(Integer.parseInt(str_list.get(j)));
}
return answer;
}
}
๐ญ2์ฐจ ์ค๋ฅ : ์ด๋ฐ์ ๋ฐ ๋ฌธ์์ด <-> ์ ์ ๋ณํ์ ํด๊ฒฐํ๋๋ฐ ...!!!
ํ ์คํธ ์ผ์ด์ค๋ ๋ง์์ง๋ง ์ ์ถํ๋ฉด ์ค๋ฅ๊ฐ ์๊ธด๋ค ใ
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public ArrayList <Integer> solution(int n, int[] slicer, int[] num_list) {
ArrayList <String> str_list = new ArrayList<String>();
ArrayList <Integer> answer = new ArrayList<>();
String tmp = "";
String str = Arrays.toString(num_list); //๋ฐฐ์ด ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ธฐ
str = str.replace("[", "").replace("]", "").replace(",","").replace(" ","");
int a = slicer[0];
int b = slicer[1];
int c = slicer[2];
switch (n) {
case 1:
tmp = str.substring(0,b+1); // ๋ฌธ์์ด์ ์ฝ์
break;
case 2:
tmp = str.substring(a,num_list.length);
break;
case 3:
tmp = str.substring(a,b+1);
break;
case 4:
for (int i = a; i <= b; i+=c){ //1~5
str_list.add(String.valueOf(num_list[i]));
}
break;
}
if ( n == 1 || n == 2 || n == 3){
for (int j = 0; j < tmp.length(); j++){
char ch = tmp.charAt(j); //๋ฌธ์ ํ๋์ฉ ๊ฐ์ ธ์ค๊ธฐ
answer.add(Integer.valueOf(""+ch)); //
}
}else {
for (int j = 0; j < str_list.size(); j++){
answer.add(Integer.parseInt(str_list.get(j)));
}
}
return answer;
}
}