시간 제한메모리 제한제출정답맞은 사람정답 비율
1 초256 MB2125310245800348.321%


ㅇ 문제

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


한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다.

쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.

이 작업을 수행하는데 필요한 이동 순서를 출력하는 프로그램을 작성하라. 단, 이동 횟수는 최소가 되어야 한다.







ㅇ 입력

첫째 줄에 첫 번째 장대에 쌓인 원판의 개수 N (1 ≤ N ≤ 20)이 주어진다.





ㅇ 출력

첫째 줄에 옮긴 횟수 K를 출력한다.

두 번째 줄부터 수행 과정을 출력한다. 두 번째 줄부터 K개의 줄에 걸쳐 두 정수 A B를 빈칸을 사이에 두고 출력하는데, 이는 A번째 탑의 가장 위에 있는 원판을 B번째 탑의 가장 위로 옮긴다는 뜻이다.




ㅇ 링크

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



ㅇ 소스

import java.util.Scanner;

public class Main {

    private static final String SEPARATOR = "\n";
    private static StringBuilder sb;

    static void hanoi(int fromint byint toint n) {
        if (n == 1) {
            sb.append(from + " " + to);
        } else {
            hanoi(from, to, by, n - 1);
            sb.append(SEPARATOR + from + " " + to + SEPARATOR);
            hanoi(by, from, to, n - 1);
        }
    }

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

        sb = new StringBuilder();
        hanoi(123, n);
        System.out.println((int) (Math.pow(2, n) - 1));
        System.out.println(sb.toString());
    }

}



ㅇ 해결방법 

간단한 분할과 정복문제.


* 1->3으로 높이 5짜리 하노이탑 옮기는 법

1) 높이 4짜리 하노이탑을 2에 쌓는다.

2) 1에 있는 원반을 3으로 옮긴다.

3) 2->3으로 높이 4짜리 하노이탑 옮기는 법을 수행ㅋㅋㅋ


소스를 보고나면 엄청 시시한 문제이니,

손으로 풀면서 해법을 찾아가는 것을 추천합니다.







jqGrid를 사용하는데


특정 컬럼의 스타일을 


변경하고 싶은 경우 어떻게 해야할까?






loadComplete 메소드(데이터 로딩 후 호출되는 메소드) 내에서 처리!


// 배경색상 css 선언

var cssGreen = {'background-color':'#6DFF6D'};

   

// 그리드 데이터의 ID 가져오기

var ids = $('#gridName').jqGrid('getDataIDs');

   

// 그리드 데이터 가져오기

var gridData = $("#gridName").jqGrid('getRowData');


// 데이터 확인후 색상 변경

for (var i = 0; i < gridData.length; i++) {

var idx = ids[i];


// 열의 색상을 변경하고 싶을 때(css는 미리 선언)

$('#gridNametr[id=' + idx + ']').addClass('grid-test');

   

// 칼럼의 색생을 변경하고 싶을 때

$('#gridName').jqGrid('setCell', idx, 'document_status_text', '', cssGreen);


}




이렇게 처리하면 컬럼이나 열의 style을 변경할 수 있다.








jqGrid를 사용하는데


page, total, records 등을 제외한


추가로 사용할 데이터를 서버에서 전달받아야 할 경우,


클라이언트단에서는 어떻게 받아야 할까?




이 때 사용하는 것이 바로 jsonReader + userdata 이다.






1. 우선 서버에서 리턴하는 json 형태는 대략 다음과 같다고 가정하면,


{

"userdata"    :    { "title" : "어서오세요" , "subtitle" : "개발자 여러분..." }

, "rows"        :    { ... }

}







2. jqGrid의 속성 jsonReader는 다음과 같이 설정한다.


jsonReader : {

userdata    :    "userdata"

}







3. loadComplete에서 json형태로 출력하여 데이터 확인하기.


loadComplete : function(){

alert(JSON.stringify($("#gridName").getGridParam('userData')));

}


//getGridParam 으로 가져올 땐 userdata 가 아니라 userData 라는 것.




색깔 칠해뒀으니, 대소문자 주의해서 사용하길 바랍니다~!!





알기 전엔 어려움. ㅠㅠ


해보고 나니 되는 것을 확인  !_!


쉽다고 느낌. ^_^


사실 어려운 것이 아님 & 쉬운 거임. ㅇ_ㅇ



ㅂㅂㅇ




+ Recent posts