[ Programmers ] 왼쪽 오른쪽 ( java ) 63 / 124
📚 Table of Contents
문제 설명
문자열 리스트 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" 네 개의 문자열로 이루어져 있습니다.
입출력 예
str_list | result |
---|---|
["u", "u", "l", "r"] | ["u", "u"] |
["l"] | [] |
입출력 예 설명
입출력 예 #1
- "r"보다 "l"이 먼저 나왔기 때문에 "l"의 왼쪽에 있는 문자열들을 담은 리스트인 ["u", "u"]를 return합니다.
입출력 예 #2
- "l"의 왼쪽에 문자열이 없기 때문에 빈 리스트를 return합니다.
문제 풀이
코드 설명
코드의 목적:
이 코드는 주어진 문자열 배열에서 "l" 또는 "r"을 찾아 해당 원소까지 또는 해당 원소 이후의 모든 원소를 새로운 배열로 반환하는 기능을 가진 알고리즘입니다.
코드의 주요 구조:
- 클래스 정의: Solution이라는 이름의 클래스를 정의합니다.
- 메서드 정의: solution이라는 이름의 메서드를 정의합니다. 이 메서드는 문자열 배열(str_list)을 인자로 받아 처리합니다.
코드의 주요 알고리즘:
- 배열의 각 원소에 대해 반복문을 실행합니다.
- 원소가 "l"인 경우, 배열의 시작부터 해당 원소까지의 구간을 새로운 배열로 복사하여 반환합니다.
- 원소가 "r"인 경우, 배열의 해당 원소 다음부터 마지막 원소까지의 구간을 새로운 배열로 복사하여 반환합니다.
- 배열에 "l" 또는 "r"이 없는 경우, 빈 배열을 반환합니다.
코드의 핵심:
- for-each문을 이용하여 배열의 각 원소를 순회합니다.
- if문과 equals를 이용하여 원소가 "l" 또는 "r"인 경우를 판단합니다.
- Arrays.copyOfRange를 이용하여 원하는 구간을 새로운 배열로 복사합니다.
풀이
import java.util.Arrays;
class Solution {
public String[] solution(String[] str_list) {
int idx = 0;
// 배열의 각 원소에 대해 반복문을 실행
for (String s : str_list) {
// 원소가 "l"인 경우, 배열의 시작부터 해당 원소까지의 구간을 새로운 배열로 복사하여 반환
if (s.equals("l")) {
return Arrays.copyOfRange(str_list, 0, idx);
// 원소가 "r"인 경우, 배열의 해당 원소 다음부터 마지막 원소까지의 구간을 새로운 배열로 복사하여 반환
} else if (s.equals("r")) {
return Arrays.copyOfRange(str_list, idx + 1, str_list.length);
}
idx ++;
}
// 배열에 "l" 또는 "r"이 없는 경우, 빈 배열을 반환
return new String[]{};
}
}
'Coding > Programers' 카테고리의 다른 글
[ Programmers ] n개 간격의 원소들 ( java ) 65 / 124 (1) | 2024.01.04 |
---|---|
[ Programmers ] n 번째 원소까지 ( java ) 64 / 124 (0) | 2024.01.04 |
[ Programmers ] 순서 바꾸기 ( java ) 62 / 124 (0) | 2024.01.04 |
[ Programmers ] n 번째 원소부터 ( java ) 61 / 124 (0) | 2024.01.04 |
[ Programmers ] 배열 조각하기 ( java ) 60 / 124 (1) | 2024.01.03 |