반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 16174번 점프왕 쩰리 (Large) 파이썬(Python)
1) 문제번호 : 16174번
2) 문제 출처
https://www.acmicpc.net/problem/16174
2. 문제
‘쩰리’는 점프하는 것을 좋아하는 젤리다. 단순히 점프하는 것에 지루함을 느낀 ‘쩰리’는 새로운 점프 게임을 해보고 싶어 한다. 새로운 점프 게임의 조건은 다음과 같다.
- ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다.
- ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다.
- ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할 수 없다.
- ‘쩰리’가 가장 오른쪽, 가장 아래 칸에 도달하는 순간, 그 즉시 ‘쩰리’의 승리로 게임은 종료된다.
- ‘쩰리’가 한 번에 이동할 수 있는 칸의 수는, 현재 밟고 있는 칸에 쓰여 있는 수 만큼이다. 칸에 쓰여 있는 수 초과나 그 미만으로 이동할 수 없다.
새로운 게임이 맘에 든 ‘쩰리’는, 계속 게임을 진행해 마침내 최종 단계에 도달했다. 하지만, 게임을 진행하는 구역이 너무 넓어져버린 나머지, 이 게임에서 이길 수 있는지 없는지 가늠할 수 없어졌다. ‘쩰리’는 유능한 프로그래머인 당신에게 주어진 구역에서 승리할 수 있는 지 알아봐 달라고 부탁했다. ‘쩰리’를 도와 주어진 게임 구역에서 끝 점(오른쪽 맨 아래 칸)까지 도달할 수 있는지를 알아보자!
3. 제약사항
4. 입력
입력의 첫 번째 줄에는 게임 구역의 크기 N (2 ≤ N ≤ 64)이 주어진다.
입력의 두 번째 줄부터 마지막 줄까지 게임판의 구역(맵)이 주어진다.
게임판의 승리 지점(오른쪽 맨 아래 칸)에는 -1이 쓰여있고, 나머지 칸에는 0 이상 100 이하의 정수가 쓰여있다.
5. 출력
‘쩰리’가 끝 점에 도달할 수 있으면 “HaruHaru”(인용부호 없이), 도달할 수 없으면 “Hing” (인용부호 없이)을 한 줄에 출력합니다.
6. 풀이
- 풀이는 아래의 링크에서 확인할 수 있다.
- 큰 차이점은 N의 범위가 더 커졌다는 것.
- 하지만, Python에서는 필요가 없다!
7. 소스 코드
import sys
input=sys.stdin.readline
N = int(input()) # 게임구역크기 N
board = []
for _ in range(N) :
board.append(list(map(int, input().split())))
#방문체크
visit = [[0] * N for _ in range(N)]
queue = [[0,0]]
#하, 우
dx = [1,0]
dy = [0,1]
#BFS
while queue :
x, y = queue[0][0], queue[0][1]
del queue[0]
# 맨 오른쪽 아래 도달하면 HaruHaru 출력
if board[x][y]==-1 :
print("HaruHaru")
exit(0)
# 점프값
jump = board[x][y]
#아래, 오른쪽 탐색
for i in range(2) :
nx = x + dx[i] * jump
ny = y + dy[i] * jump
# 범위 안에 있고, 방문하지 않았으면 방문 체크 후 queue에 넣기
if 0<=nx<N and 0<=ny<N and visit[nx][ny]==0 :
visit[nx][ny] = 1
queue.append([nx,ny])
print("Hing")
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 3187번 양치기 꿍 파이썬(Python) (0) | 2021.06.11 |
---|---|
[백준 알고리즘] 백준 9372번 상근이의 여행 파이썬(Python) (0) | 2021.06.11 |
[백준 알고리즘] 백준 21867번 Java Bitecode 파이썬(Python) (0) | 2021.06.10 |
[백준 알고리즘] 백준 21866번 추첨을 통해 커피를 받자 파이썬(Python) (0) | 2021.06.10 |
[백준 알고리즘] 백준 16173번 점프왕 쩰리 (Small) 파이썬(Python) (0) | 2021.06.10 |
[백준 알고리즘] 백준 1388번 바닥 장식 파이썬(Python) (0) | 2021.06.10 |
[백준 알고리즘] 백준 2178번 미로 탐색 파이썬(Python) (2) | 2021.06.10 |
[백준 알고리즘] 백준 4766번 일반 화학 실험 파이썬(Python) (0) | 2021.06.09 |
최근댓글