할 일 목록
오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
class Solution {
public List<String> solution(String[] todo_list, boolean[] finished) {
List<String> answer = new ArrayList<>();
for(int i = 0; i < todo_list.length; i++) {
if(finished[i] == false) {
answer.add(todo_list[i]);
}
}
return answer;
}
}
class Solution {
public String[] solution(String[] todo_list, boolean[] finished) {
String str = "";
for(int i=0; i < finished.length; i++){
str = finished[i] == false ? str+todo_list[i]+"," : str;
}
String[] answer = str.split(",");
return answer;
}
}
1. 순서대로 finished배열을 꺼내면서 false인 인덱스를 찾는다
2. false인 인덱스 번호를 가진 todo_list를 새 배열에 담는다
처음에는 결과 값을 저장하는 배열을 ArrayList에 담아서 문제를 풀었다. 이후 String으로 결과 값을 모아서 split메서드를 사용해서 배열로 만드는 코드를 보고 해당 메서드를 적용했다.
JAVA split 메서드
- String[] split(String regex)
- 인자로 온 특정 문자 기준으로 문자열을 나누어 배열(Array)에 저장하여 반환한다
- String[] split(String regex, int limit)
- 첫 번째 인자로 온 특정 문자 기준으로 두 번째 인자로 온 갯수만큼 나눈다.
String str = "sm,yg,jyp,hybe";
String[] arr1 = str.split(",");
System.out.println(arr1.length); // 4
String[] arr2 = str.split(",", 3);
System.out.println("arr2[0] = " + arr2[0]); // arr2[0] = sm
System.out.println("arr2[1] = " + arr2[1]); // arr2[1] = yg
System.out.println("arr2[2] = " + arr2[2]); // arr2[2] = jyp,hybe
String[] arr3 = str.split(",", 2);
System.out.println("arr3[0] = " + arr3[0]); // arr3[0] = sm
System.out.println("arr3[1] = " + arr3[1]); // arr3[1] = yg,jyp,hybe
'문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 17 문자열 (0) | 2024.08.10 |
---|---|
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 15 리스트(배열), 문자열 (0) | 2024.08.07 |
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 9 문자열 (0) | 2024.07.25 |
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 8 조건문, 문자열 (4) | 2024.07.25 |
[프로그래머스 : JAVA] 코딩 기초 트레이닝 Day 7 반복문 (1) | 2024.07.22 |