재귀 함수 내에서의 for문 실행
조회수 2221회
import java.util.ArrayList; import java.util.Scanner;
public class Anagram {
public static void ana(ArrayList<String> ar, ArrayList<String> sub)
{
if(ar.size()>1)
{
for(int i = 0; i < ar.size(); i++)
{
System.out.println("실행");
sub.add(ar.get(i));
ar.remove(i);
ana(ar, sub);
}
}
else if(ar.size() == 1)
{
sub.add(ar.get(0));
System.out.println(sub);
return;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> ar = new ArrayList<String>();
ArrayList<String> sub = new ArrayList<String>();
Scanner a = new Scanner(System.in);
Scanner b = new Scanner(System.in);
System.out.println("입력할 문자의 개수를 입력해주세요 :");
int count = a.nextInt();
for(int i = 0; i < count; i++)
{
ar.add(b.nextLine());
}
ana(ar, sub);
}
}
Anagram을 재귀함수를 이용해서 만들려고 합니다. 그런데 이것을 실행시키면, 매소드 안 for문이 0일때는 실행이 되는데 딱 한 번만 되고 그 뒤로 반복이 되질 않습니다. 이것을 반복시키려면 어떻게 해야하는 것인지 모르곘습니다. 도움 부탁드립니다. ㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
import java.util.ArrayList; import java.util.Scanner; public class Anagram { public void Func(ArrayList<String> ar, ArrayList<String> sub, int size) { if(size == 0) { System.out.println(sub); return; } System.out.println("실행"); sub.add(ar.get(0)); ar.remove(0); Func(ar, sub, size-1); } public static void main(String[] args) { Anagram ana = new Anagram(); ArrayList<String> ar = new ArrayList<String>(); ArrayList<String> sub = new ArrayList<String>(); Scanner a = new Scanner(System.in); Scanner b = new Scanner(System.in); System.out.println("입력할 문자의 개수를 입력해주세요 :"); int count = a.nextInt(); for(int i = 0; i < count; i++) { ar.add(b.nextLine()); } ana.Func(ar, sub, ar.size()); } }
뭘 원하시는지 잘 모르겠네요
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력