ylab 2023. 1. 26. 20:07

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

 

16174번: 점프왕 쩰리 (Large)

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

www.acmicpc.net

 

import sys
input = sys.stdin.readline

N = int(input())
square = []
for _ in range(N):
    square.append(list(map(int,input().split())))
    

## 방문여부 확인 배열
visited = [[0]*N for _ in range(N)]


## 하, 우
dx=[1,0]
dy=[0,1]

from collections import deque

## dfs 함수 만들기
def dfs(x,y):
    visited[x][y]=True
    #2방향밖에 못움직임
    for i in range(2):
        #갈 수 있는 경우의수 발판의 숫자
        nx,ny = x+dx[i]*square[x][y], y+dy[i]*square[x][y]
        
        if 0<=nx <N and 0<= ny < N and not visited[nx][ny]:
            if square[nx][ny] == -1:
                print("HaruHaru")
                exit(0)
            else:
                dfs(nx,ny)
    return False

if dfs(0,0) ==False:
    print("Hing")

 

1. 좌표 처럼나온다 dx, dy

2. 방문 배열 만들어서 체크하기

3. dfs 함수 만들기

4. exit(0) 는 아예 실행 끝내는거 vs break 는 반복문 나가는거