목록CodingTestTraining/BaekJoon (24)
승쨩개발공부

재귀를 안쓰다가 이걸 풀려니까 기억이 안났다 하노이탑의 규칙은 1,2,3번 기둥이 있고 N개의 원판들이 1번원판에 모두 꽃혀있다 이 N개의 원판을 3번 기둥에모두 꽃으면 되는데 큰 원판은 작은원판 위에 올 수 없다. 옮긴 횟수 K를 구하려면N개의 원반이 있으면 1번부터 N-1번 원반까지 모두 2번쨰 기둥에 들어가야한다.N번 원반이 3번기둥에 한번 이동하고 1 ~ N-1번 원반이 2번기둥에서 N번원반이 올려져있는3번기둥으로 이동해야하니 총 이동 횟수는 f(n) = 1 + 2f(n-1)이 된다 즉 (2^n) - 1 번 이동을 하게 된다. 즉N-1개의 원판을 기둥 1에서 기둥 2로 옮긴다N번 원판을 기둥 1에서 기둥 3으로 옮긴다N-1개의 원판을 기둥 2에서 기둥 3으로 옮긴다-> 원판이 n-1개일떄 옮길 수..

Queue는 Vector나 다른 STL같은 clear함수가 없다. 따라서 Pop으로 다 뺴주거나 재정의를 해줘야한다.

기본 원리는 전에 올렸던 토마토 문제에서 Z축이 추가된 문제이다. 그래서 따로 문제 설명은 하지않고 사용한 함수 설명을 하겠다.pair가 2가지 변수를 대입할 수 있었다면 tuple은 3가지 변수를 대입할 수 있다.tuple은 pair함수처럼 first,second가 없다.따라서 tie 함수를 이용해 각자 값을 새로 대입해야한다. tuple헤더를 추가해주자

나이트는 (2,1),(1,2),(-1,2)(-2,1), (-2,-1),(-1,-2)(1,-2)(2,-1) 을 이동할 수 있다보드판을 직접 입력할 필요는 없고 Check에 이동거리를 q.front에 + 1씩 저장해주면 된다. 첫쨰줄은 테스트케이스 갯수둘쨰줄은 체스판의 한변의 길이 n(정사각형)셋째줄에는 시작 인덱스넷쨰줄에는 목적지 인덱스를 입력 받으면 된다. 어떻게 풀어야하는지 그림을 한번 보자 그냥 전에 풀었던 BFS처럼 시작지점에서 폰 이동범위 마다 거리를 기록해주면 된다.

각 구역마다 돌면서 R갯수 G갯수 B갯수를 구해서 갯수를구하고그 다음 RG갯수 B갯수를 구하면 된다모든 구역을 돌고 같은 문자만 BFS를 돌고 BFS를 나오게되면 카운트를 증가해주면된다. 이번엔 열 갯수만 입력으로 주어진다.