이거 일단 문제가 카운트 된 숫자를 맨 위에 써야한다는 건데.....
맨 밑도 아니고 맨 위라고..?
어떻게 해야하지..?ㅎㅎㅎ 함수를 두개 만들어야 하나?
그래서 구글링 해보니까 스트링빌더를 써야한다고 한다!!
세상엔 정말 똑똑한 사람들이 많아~~
Stringbuilder 를 써서 하나의 스트링에 실행결과를 기록해둔다음 카운트를 출력하고 마지막에 실행 순서를 출력하면 되는 것.. 진짜 센세이션이다~
그래서 처음으로 스트링 빌더도 써봤다!
import java.util.*;
public class Main {
private static int count=0;
static StringBuilder sb=new StringBuilder();
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
sc.close();
int result;
result=hanoi(num, 1, 3, 2);
System.out.println(result);
System.out.println(sb);
}
public static int hanoi(int num, int start, int end, int mid) {
if (num==1) {
sb.append(start+" "+end+"\n");
count++;
} else {
hanoi(num-1, start, mid, end);
sb.append(start+" "+end+"\n");
count++;
hanoi(num-1, mid, end, start);
}
return count;
}
}
처음에 코딩 배우면서 보고 띠용? 했던 하노이 탑..
이제는 외워버린건지 그냥 보고 바로 풀 수 있게 된 재귀 대표문제가 되었다..
얼른 다른 문제도 많이 풀어서 빨리 빨리 해낼 수 있었으면 좋겠다~~~
'아기 개발자 > 백준 문제풀이' 카테고리의 다른 글
[BOJ_JAVA] 백준 2908번 : 상수 @달깅 (0) | 2019.11.03 |
---|---|
[BOJ_JAVA] 백준 1152번 : 단어의 개수 @달깅 (0) | 2019.11.03 |
[BOJ_JAVA] 백준 2447번 : 별찍기 @달깅 (0) | 2019.11.02 |
[BOJ_JAVA] 백준 15596번: 정수 N개의 합 @달깅 (0) | 2019.11.02 |
[BOJ_JAVA] 백준 1157번: 단어공부 @달깅 (0) | 2019.11.01 |
댓글