코드스테이츠 Day48
// 모든 조합을 검사하는 재귀 함수를 작성합니다.
public ArrayList<String> pickOrNot(Stack<String> stack, int idx, String subset, ArrayList<String> result) {
// 재귀 함수이기 때문에 탈출 조건을 만듭니다.
if(idx >= subset.length()) {
// 만약, idx와 sideDishes의 길이가 같거나 크다면(마지막까지 검토한 경우) 스택을 문자열로 변환한 후, 해당 스택을 result에 넣어줍니다.
result.add(stack.toString()
.replaceAll("\\[", "")
.replaceAll("]", "")
.replaceAll(",", "")
.replaceAll(" ", ""));
return result;
} else {
// idx가 부분집합에 포함된 경우
stack.push(Character.toString(subset.charAt(idx)));
pickOrNot(stack, idx + 1, subset, result);
// idx가 부분집합에 포함되지 않은 경우
stack.pop();
pickOrNot(stack, idx + 1, subset, result);
}
return result;
}
<느낀 점>
생각없이 레퍼런스 보고 따라한 나와는 달리, 직접 코드 짜서 구현해보신 내 페어님.. 그저 존경⭐️
직접 만든 코드도 설명해주시고, 그 외에도 학습과 관련한 다양한 자료를 공유해주시고 설명해주셨다. 덕분에 엄청 많이 배우고 유익한 시간이었고, 한 편으로는 반성의 계기도 되었다.
앞으로 수,목,월 3번의 페어 학습이 더 있는데, 조금 더 열심히 해봐야겠다.