문제 설명
오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
- 1 <= todo_list의 길이 <= 100
- 2 <= todo_list의 원소의 길이 <= 20
- todo_list의 원소는 영소문자로만 이루어져 있습니다.
- todo_list의 원소는 모두 서로 다릅니다.
- finished[i]는 true 또는 false이고 true는 todo_list[i]를 마쳤음을, false는 아직 마치지 못했음을 나타냅니다.
- 아직 마치지 못한 일이 적어도 하나 있습니다.
입출력 예
todo_list | finished | result |
["problemsolving", "practiceguitar", "swim", "studygraph"] | [true, false, true, false] | ["practiceguitar", "studygraph"] |
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
int count = 0;
for (int i = 0; i < finished.length; i++) {
if (!finished[i]) {
count++;
}
}
String[] answer = new String[count];
int index = 0;
for (int i = 0; i < todo_list.length; i++) {
if (!finished[i]) {
answer[index++] = todo_list[i];
}
}
return answer;
}
}
마치지 못한 일을 담은 배열을 반환해야 하므로, 배열의 크기를 먼저 지정해야 합니다. 이는 finished 배열에서 false값을 세어보면 해결될 것입니다. 수를 셀 count 변수를 생성합니다. for문이 finished 배열의 길이만큼 순회합니다. 만약 finished의 i번째 원소가 false라면 count가 1씩 증가합니다.
answer배열을 생성합니다. 크기는 앞서 구한 count 변수의 값만큼이 될 것입니다. answer의 원소의 위치가 될 index 변수를 생성합니다.
for문이 todo_list의 길이만큼 순회합니다. 만약 finished의 i번째 원소가 false라면 answer의 index번째 원소 위치에 todo_list의 i번째 원소를 할당합니다. 조건에 해당하는 원소가 answer 배열에 차례대로 추가될 것입니다.
'프로그래머스 > Lv. 0(코딩 기초 트레이닝)' 카테고리의 다른 글
[프로그래머스 코딩테스트] 수열과 구간 쿼리 1(Java) (0) | 2023.05.09 |
---|---|
[프로그래머스 코딩테스트] n보다 커질 때까지 더하기(Java) (0) | 2023.05.09 |
[프로그래머스 코딩테스트] 5명씩(Java) (0) | 2023.05.08 |
[프로그래머스 코딩테스트] n개 간격의 원소들(Java) (0) | 2023.05.08 |
[프로그래머스 코딩테스트] 2의 영역(Java) (0) | 2023.05.07 |