백준 16954 움직이는 미로 탈출 python
문제로이동 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 목차 시작하기 전에 2개월 전에 스터디에서 공통 문제로 풀었다가 실패했던 문제였습니다. 이번엔 노트에 로직을 정리하고 1WA를 맞은 뒤 이거다! 싶어서 수정했는데 정답이었고 2회에 걸쳐 로직을 수정/추가했습니다. 접근 방법 벽이 움직인다는 점에서 캐슬디펜스 문제와 비슷하다고 생각했습니다. 비슷한 방식으로 접근했다가 큰 코 다쳤는데 그 이유는 캐슬 디펜스에선 주인공 위치가 고정되어 있지만, 이번 문제는 사방탐색(상하좌우) 뿐만 아니라 대각선 이..
byOnlineJudge··
백준 20304 비밀번호 제작 풀이 python, java
문제로이동 목차 문제 설명 펜윅트리를 하며 비트마스킹을 써왔던 것이 조금은 도움이 되었습니다. 이번 문제는 만들어둔 사진으로 대체하겠습니다. 아래의 과정(BFS)을 반복적으로 거치고 나면 가장 처음에 입력된 값을 기준으로 1의 거리를 가진 간선들이 연결되어 있습니다. 소스 코드 Python from collections import deque import sys input = sys.stdin.readline MIN = -10e9 N = int(input()) M = int(input()) arr = [MIN]*1000001 dq = deque() xs = list(map(int,input().split())) for x in xs: arr[x] = 0 dq.append(x) maxnum = 0 whil..
byOnlineJudge··
2
백준 2589 보물섬 풀이 python, java
문제로이동 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 목차 문제 설명 보통 보물의 위치가 정해져 있고 특정 위치에서 해당 보물들을 찾는 문제라면, 이 문제는 그 보물을 직접 찾고 최단거리를 출력해야 합니다. 이 문제를 읽고 나면 아래와 같은 의문점이 생깁니다. 보물을 찾는 방법? 최단 거리는 어떻게 구할 것인가? 같은 좌표인데 거리가 다른경우? 좌표가 같다면 거리가 짧은 것으로 갱신 아예 bfs를 써서 돌리면 최단 거리에서 return되기 때문에 걱정없음 이처럼 여러 가지 의문점이 생겼었는데 정리하자면 이렇..
byOnlineJudge··
백준 17135 캐슬디펜스 풀이 python, java
문제로이동 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 목차 문제 설명 비슷한 레벨의 BFS문제보다 어려웠다고 생각합니다. 성벽은 가장 아래 행(안보이는 곳)에 존재합니다. 해당 성벽에는 아처가 3명 있습니다. 이 아처의 가능한 모든 위치를 고려하셔야 합니다.(3중 for문으로 해결) 적군은 1턴(아처가 공격하고난 후) 후에 성벽으로 1칸 전진합니다. 성벽에 닿게 되면 그냥 사라집니다. 아처는 동일한 거리에 위치한 적군이 여러명일 경우, 가장 왼쪽에 있는 적군을 우선으로 죽입니다. 이 경우에 한 적군이 아처 여러명에게..
byOnlineJudge··
백준 3190 뱀 풀이 python,java
문제로이동 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 목차 런타임 에러(IndexError) 반례를 찾기 전까진 "맞왜틀"을 호소했습니다. IndexError가 일어나는 이유를 몰랐거든요.. 하지만 검증 과정에서 문제가 있었습니다. 아래의 소스코드를 보면 필드를 벗어나는 경우를 검증하지 않습니다. BFS/DFS때 흔히 하는 0=n or 0>ny or ny>=n or field[ny][nx]>1:#엔딩 조건 return move+1 if field[ny][nx]==1:#사과를 만난 경우 field[ny][nx]=..
byOnlineJudge··
백준 9328 열쇠 BFS
문제로이동 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 목차 접근 과정 오 열쇠? 비트마스킹이네 달이 차오른다 가자 문제랑 비슷해 보이는데 # 말도 안되는 생각을 해보았다.. visited = [[[0]*(1
byOnlineJudge··
불러오는 중...