[알고리즘문제풀기] 왼쪽 오른쪽

silver's avatar
May 01, 2025
[알고리즘문제풀기] 왼쪽 오른쪽

문제

내가 작성한 정답

ArrayList

import java.util.ArrayList; class Solution { public String[] solution(String[] str_list) { ArrayList<String> answer = new ArrayList<>(); for(int i=0; i<str_list.length; i++){ if(str_list[i].equals("l")) { for(int j=0; j<i; j++){ answer.add(str_list[j]); } break; } else if (str_list[i].equals("r")) { for(int j=i+1; j<str_list.length; j++){ answer.add(str_list[j]); } break; } } return answer.toArray(String[]::new); } }

Arrays.copyOfRange

import java.util.Arrays; class Solution { public String[] solution(String[] str_list) { String[] answer = new String[0]; for(int i=0; i<str_list.length; i++){ if(str_list[i].equals("l")){ answer = Arrays.copyOfRange(str_list,0,i); break; } else if (str_list[i].equals("r")) { answer = Arrays.copyOfRange(str_list,i+1,str_list.length); break; } } return answer; }

다른 사람들의 정답

Arrays.copyOfRange

import java.util.Arrays; class Solution { public String[] solution(String[] str_list) { for (int i = 0; i < str_list.length; i++) { if ("l".equals(str_list[i])) { return Arrays.copyOfRange(str_list, 0, i); } else if ("r".equals(str_list[i])) { return Arrays.copyOfRange(str_list, i + 1, str_list.length); } } return new String[0]; }

stream

import java.util.Arrays; import java.util.stream.IntStream; class Solution { public String[] solution(String[] str_list) { return IntStream.range(0, str_list.length) .boxed() .filter(i -> str_list[i].equals("l") || str_list[i].equals("r")) .findFirst() .map(i -> { if (str_list[i].equals("l")) { return Arrays.copyOfRange(str_list, 0, i); } return Arrays.copyOfRange(str_list, i + 1, str_list.length); }) .orElseGet(() -> new String[]{}); } }
Share article

silver