목차
#1 x 사이의 개수
문제 설명
문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ myString의 길이 ≤ 100,000
- myString은 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
myString | result |
"oxooxoxxox" | [1, 2, 1, 0, 1, 0] |
"xabcxdefxghi" | [0, 3, 3, 3] |
입출력 예 설명
입출력 예 #1
- "x"를 기준으로 문자열을 나누면 ["o", "oo", "o", "", "o", ""]가 됩니다. 각각의 길이로 배열을 만들면 [1, 2, 1, 0, 1, 0]입니다. 따라서 [1, 2, 1, 0, 1, 0]을 return 합니다.
입출력 예 #2
- "x"를 기준으로 문자열을 나누면 ["", "abc", "def", "ghi"]가 됩니다. 각각의 길이로 배열을 만들면 [0, 3, 3, 3]입니다. 따라서 [0, 3, 3, 3]을 return 합니다.
#2 알고리즘 및 코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
String myString = "xabcxdefxghi";
Solution sl = new Solution();
System.out.println(Arrays.toString(sl.solution(myString)));
}
}
class Solution {
public Object[] solution(String myString) {
List<Integer> list = new ArrayList<>();
int count = 0;
for (int i = 0; i < myString.length(); i++) {
if (myString.charAt(i) == 'x') {
list.add(count);
count = 0;
} else {
count++;
}
}
// 반복문이 종료되면서 마지막 문자열의 길이를 추가
list.add(count);
return list.toArray();
}
}
- 이번 예를 들어 문제는 "xabcxdefxghi"를 'x'를 기준으로 문자열이 ["", "abc", "def", "ghi"]로 나누어지고, 각 문자열의 길이인 [0, 3, 3, 3]이 배열로 반환하면 된다.
class Solution {
public Object[] solution(String myString) {
return Arrays.stream(myString.split("x"))
.map(String::length)
.toArray();
}
}
- 이 코드는 먼저 myString을 "x"를 기준으로 나누어 문자열 배열로 만들고 각 문자열의 길이를 매핑하고, 최종적으로 배열로 반환한다. 결과적으로 ["", "abc", "def", "ghi"]를 기반으로 [0, 3, 3, 3]이 반환한다.
'JAVA > 프로그래머스 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스, LV.0] 간단한 식 계산하기 (0) | 2024.01.06 |
---|---|
[프로그래머스, LV.0] 문자열 잘라서 정렬하기 (1) | 2024.01.06 |
[프로그래머스, LV.0] 공백으로 구분하기 2 (1) | 2024.01.06 |
[프로그래머스, LV.0] ad 제거하기 (0) | 2024.01.06 |
[프로그래머스, LV.0] 문자열이 몇 번 등장하는지 세기 (2) | 2024.01.06 |