[백준/BOJ] 12946 하노이의 탑 - JAVA - Lv2

2025. 4. 27. 22:52·알고리즘/문제풀이

[백준/BOJ] 12946 하노이의 탑 - JAVA - Lv2

문제

https://school.programmers.co.kr/learn/courses/30/lessons/12946

 

문제 분석

조건

  • 한 번에 한 개의 원판만 옮길 수 있다. 
  • 큰 원판이 작은 원판 위에 올라갈 수 없다.
  • 세 개의 기둥을 이용해 모든 원판을 시작 기둥에서 목표 기둥으로 옮겨야 한다.

풀이방법

  • 원판이 1개일 경우, 시작 기둥에서 목표 기둥으로 바로 옮긴다.
  • 원판이 N개일 경우, 가장 큰 N번 원판을 목표 기둥으로 옮기기 위해 다음을 반복한다.
    1. N-1개의 원판을 보조 기둥으로 옮긴다.
    2. N번 원판을 목표 기둥으로 옮긴다.
    3. 보조 기둥에 있던 N-1개의 원판을 목표 기둥으로 옮긴다.
  • 이 과정을 재귀적으로 반복하여 모든 원판을 이동시킨다.

코드

import java.util.*;

class Solution {
    static List<int[]> list;
    public int[][] solution(int n) {
        
        list = new ArrayList<>();
        hanoi(n,1,2,3);
        int[][] answer = new int[list.size()][2];
        for(int i = 0; i < list.size(); i++){
            answer[i] = list.get(i);
        }
        return answer;
    }
    
    public void hanoi(int n, int from, int use, int to){
        if(n == 1){
            list.add(new int[]{from, to});
        }else{
            hanoi(n-1, from, to, use);
            hanoi(1, from, use, to);
            hanoi(n-1, use, from, to);
        }
    }
}

결과

728x90
저작자표시 비영리 변경금지 (새창열림)
'알고리즘/문제풀이' 카테고리의 다른 글
  • [백준/BOJ] 1240 노드사이의 거리 - JAVA
  • [백준/BOJ] 1149 RGB거리 - JAVA - 실버1
  • [프로그래머스] 92343 양과 늑대 - JAVA - Lv3
  • [프로그래머스] 43162 네트워크 - JAVA - Lv3
LIRI
LIRI
  • LIRI
    기록
    LIRI
  • 전체
    오늘
    어제
    • 분류 전체보기 (74)
      • 블로그 꾸미기 (0)
      • Spring (6)
      • 바이브코딩 (1)
      • React (3)
      • CS (0)
      • 알고리즘 (57)
        • 개념 (2)
        • 문제풀이 (54)
      • Java (1)
      • DB (1)
      • log (4)
        • SSAFY (3)
        • 궁금 (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 공지사항

  • 인기 글

  • 태그

    알고리즘 문제풀이
    리액트
    dfs
    lv3
    Security
    알고리즘
    BFS
    커서ai
    SSAFY
    dp
    LV2
    BOJ
    싸피
    SSAFY 9기
    비트마스킹
    pccp모의고사
    그리디
    ssafy 합격 후기
    Springsecurity
    Java
    바이브코딩
    너비우선탐색
    JWT
    LIS
    Spring
    springboot
    최장증가부분수열
    프로그래머스
    느좋코딩
    백준
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
LIRI
[백준/BOJ] 12946 하노이의 탑 - JAVA - Lv2
상단으로

티스토리툴바