본문 바로가기

Algorithm/Brute Force

(C++) - 백준(BOJ) 16173 : 점프왕 쩰리 (Small)

반응형

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

 

16173번: 점프왕 쩰리 (Small)

쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로,  (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다.

www.acmicpc.net

재귀를 활용한 brute force문제였습니다.

📕 풀이방법

📔 입력 및 초기화

구역크기 n, 구역정보 이차원 배열 board를 선언 후 입력받습니다.

📔 풀이과정

canWin함수를 수행합니다.

오른쪽 또는 아래쪽으로 갈 수 있다면 해당 칸으로 점프합니다.

도착할 수 있다면 1을 도착할 수 없다면 0을 반환합니다.

📔 정답출력

함수 결과값을 출력합니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;

int n, board[3][3];

int canWin(int r, int c){
  if(r == n-1 && c == n-1) return 1;
  if(0 > r || r >= n || 0 > c || c >= n) return 0;
  int ret = 0;
  if(r + board[r][c] > r) ret = max(ret, canWin(r + board[r][c], c));
  if(c + board[r][c] > c) ret = max(ret, canWin(r, c + board[r][c]));
  return ret;
}

int main(){
  cin >> n;
  for(int i = 0; i < n; i++)
    for(int j = 0; j < n; j++) 
      cin >> board[i][j];

  if(canWin(0, 0)) cout << "HaruHaru";
  else cout << "Hing";
}