본문 바로가기
Java/공부

예제로 arrayList 공부하기

by notcherry 2023. 7. 19.

 

 

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로 거르거나 정렬하는 정도만 사용할 줄 알면 좋겠다. 개발할 때는 분명 많이 쓰일테니!