Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 2343
  • 백준 14582
  • 백준 3049
  • 백준 1495
  • 백준 1011
  • 백준
  • 백준 2467
  • 백준 1531
  • 백준 2591
  • 백준 2225
  • 백준 15312
  • 백준 7662
  • 백준 1064
  • 백준 8892
  • 백준 3135
  • 백준 12871
  • 자바
  • Java
  • 백준 1914
  • 백준 16194
  • 백준 4659
  • 백준 16926
  • 백준 1747
  • 백준 15655
  • 백준 7567
  • 백준 15961
  • 백준 6550
  • 백준 10709
  • 백준 24039
  • 백준 12605
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 1914 하노이 탑(Java)
백준

백준 1914 하노이 탑(Java)

2023. 2. 23. 13:40

https://www.acmicpc.net/problem/1914

 

1914번: 하노이 탑

세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로

www.acmicpc.net


 

 

Java 코드

 


import java.util.Scanner;
import java.math.BigInteger;

public class Main {

  static StringBuilder sb = new StringBuilder();

  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    
    int n = sc.nextInt();

    BigInteger num = new BigInteger("2").pow(n).subtract(new BigInteger("1"));
    sb.append(num+"\n");

    if(n <= 20) cal(n, 1, 2, 3);
    
    System.out.println(sb);
  }

  public static void cal(int n, int fir, int sec, int thr) {
    if(n == 1) {
      sb.append(fir+" "+thr).append("\n");
      return;
    }
    cal(n - 1, fir, thr, sec);
    sb.append(fir+" "+thr).append("\n");
    cal(n - 1, sec, fir, thr);
  }
}

'백준' 카테고리의 다른 글

백준 3135 라디오(Java)  (0) 2023.02.23
백준 14912 숫자 빈도수(Java)  (0) 2023.02.23
백준 15903 카드 합체 놀이(Java)  (0) 2023.02.23
백준 3184 양(Java)  (0) 2023.02.22
백준 16212 정열적인 정렬(Java)  (0) 2023.02.22
    '백준' 카테고리의 다른 글
    • 백준 3135 라디오(Java)
    • 백준 14912 숫자 빈도수(Java)
    • 백준 15903 카드 합체 놀이(Java)
    • 백준 3184 양(Java)
    Park DJ
    Park DJ

    티스토리툴바