본문 바로가기
알고리즘/코딩 테스트 문제

[프로그래머스] 할 일 목록(Java)

by 진진리 2023. 10. 26.
728x90
  • 제출한 코드
class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        String[] str = new String[finished.length];
        int num = 0;
        for(int i=0;i<finished.length;i++){
            if(!finished[i]) str[num++]=todo_list[i];
        }
        
        String[] answer = new String[num];
        for(int i=0;i<num;i++) answer[i] = str[i];
        
        return answer;
    }
}

String이나 int 배열은 처음부터 크기가 정해져 있기 때문에 처음에 크기를 정확히 알 수 없을 때 어떻게 하면 좋을지 잘 몰랐었다.

다른 사람의 코드를 참고하면서 알게 된 것은 int 배열의 경우 일단 list에 값을 add 해준 뒤 list.size() 메소드를 이용하여 배열의 크기를 지정해 값을 하나씩 꺼내 저장해주는 방식을 보게 되었다.

String 배열의 경우 split() 함수를 사용하는 방식을 보게 되었는데 한 번 정리하면 좋을 것 같아 기록한다.

 

  • 수정한 코드
class Solution {
    public String[] solution(String[] todo_list, boolean[] finished) {
        StringBuilder answer = new StringBuilder();
        for(int i=0;i<finished.length;i++){
            if(!finished[i]) answer.append(todo_list[i]+",");
        }
        
        return answer.toString().split(",");
    }
}