import java.util.ArrayList;
public class ListPractice1 {
public int[] solution(String myString) {
ArrayList<Integer> b = new ArrayList<> ();
int length = 0;
//나눠서 리스트에 저장하기
for(char ch : myString.toCharArray()){
if(ch != 'x'){
length++;
}else{
b.add(length);
length = 0;
}
}
//마지막 length 넣기
if(length>=0){
b.add(length);
}
//리스트를 answer배열에 넣기
int[] answer = new int[b.size()];
for(int i =0; i<b.size() ; i++){
answer[i] = b.get(i);
}
return answer;
}
}
ArrayList를 사용해서 char == x 일 때 끊고 length =0 으로 초기화한 다음에 char != x 일 때 다시 리스트에 쌓는 방법으로 풀었다. 제일 무난한 방법이지만 리스트와 배열을 활용하기 좋은 예라고 생각된다! 이제 30문제만 풀면 lv.0 끝난다ㅏㅏ 이 시간에는 아는 개념 이용해서 기초 베이스로 문풀하는 중
배열 문제에서 arraylist를 사용하면 answer배열의 크기를 처음에 어떻게 설정할지 고민하지 않아도 돼서 편한 것 같다. 나중에 다시 배열로 만드는 것에서 인덱스범위 오류가 종종 뜨긴 하지만,, stream사용하면 간단해지는데 아직 서툴다. 메소드를 너무 많이 사용하면 효율성이 떨어지기 때문에 filter로 거르거나 정렬하는 정도만 사용할 줄 알면 좋겠다. 개발할 때는 분명 많이 쓰일테니!
'Java > 공부' 카테고리의 다른 글
[JAVA] 예제로 Hash map 공부하기 (0) | 2023.07.25 |
---|---|
배열의 선언과 초기화 예제에 적용해보기 (0) | 2023.07.21 |
trim() split("\\s") split("\\s+") (0) | 2023.07.18 |
StringBuilder() (0) | 2023.07.12 |
[JAVA] 예제로 2차원 배열 생성 연습하기 (0) | 2023.07.07 |