문제
문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요. "l"이나 "r"이 없다면 빈 리스트를 return합니다.
제한사항
- 1 ≤ str_list 의 길이 ≤ 20
- str_list 는 "u", "d", "l", "r" 네 개의 문자열로 이루어져 있습니다.
import java.util.Arrays;
class Solution {
public String[] solution(String[] str_list) {
String[] answer = {};
for(int i = 0; i < str_list.length; i++) {
if(str_list[i].equals("l")) {
answer = Arrays.copyOfRange(str_list, 0, i);
}
else if(str_list[i].equals("r")) {
answer = Arrays.copyOfRange(str_list, i+1, str_list.length);
}
else {
continue;
}
break;
}
return answer;
}
}
중간에 l 과 r 이 나오게 된다면 반복문을 종료해야한다.
그래서 else 문으로 l 과 r이 아닐경우 continue를 사용했고, 그 뒤에 l 과 r을 만났을 땐 continue 를 만나지 않아 반복문이 종료된다.
근데 그냥 while 문을 써도 되지 않았을까 싶은 생각이 든다.
출처
https://school.programmers.co.kr/learn/courses/30/lessons/181890