백준 16954 움직이는 미로 탈출 python
OnlineJudge2021. 4. 20. 11:12백준 16954 움직이는 미로 탈출 python

문제로이동 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 목차 시작하기 전에 2개월 전에 스터디에서 공통 문제로 풀었다가 실패했던 문제였습니다. 이번엔 노트에 로직을 정리하고 1WA를 맞은 뒤 이거다! 싶어서 수정했는데 정답이었고 2회에 걸쳐 로직을 수정/추가했습니다. 접근 방법 벽이 움직인다는 점에서 캐슬디펜스 문제와 비슷하다고 생각했습니다. 비슷한 방식으로 접근했다가 큰 코 다쳤는데 그 이유는 캐슬 디펜스에선 주인공 위치가 고정되어 있지만, 이번 문제는 사방탐색(상하좌우) 뿐만 아니라 대각선 이..

백준 20304 비밀번호 제작 풀이 python, java
OnlineJudge2021. 2. 8. 16:19백준 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..

백준 2589 보물섬 풀이 python, java
OnlineJudge2021. 1. 21. 20:21백준 2589 보물섬 풀이 python, java

문제로이동 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 목차 문제 설명 보통 보물의 위치가 정해져 있고 특정 위치에서 해당 보물들을 찾는 문제라면, 이 문제는 그 보물을 직접 찾고 최단거리를 출력해야 합니다. 이 문제를 읽고 나면 아래와 같은 의문점이 생깁니다. 보물을 찾는 방법? 최단 거리는 어떻게 구할 것인가? 같은 좌표인데 거리가 다른경우? 좌표가 같다면 거리가 짧은 것으로 갱신 아예 bfs를 써서 돌리면 최단 거리에서 return되기 때문에 걱정없음 이처럼 여러 가지 의문점이 생겼었는데 정리하자면 이렇..

백준 17135 캐슬디펜스 풀이 python, java
OnlineJudge2021. 1. 19. 21:52백준 17135 캐슬디펜스 풀이 python, java

문제로이동 17135번: 캐슬 디펜스 첫째 줄에 격자판 행의 수 N, 열의 수 M, 궁수의 공격 거리 제한 D가 주어진다. 둘째 줄부터 N개의 줄에는 격자판의 상태가 주어진다. 0은 빈 칸, 1은 적이 있는 칸이다. www.acmicpc.net 목차 문제 설명 비슷한 레벨의 BFS문제보다 어려웠다고 생각합니다. 성벽은 가장 아래 행(안보이는 곳)에 존재합니다. 해당 성벽에는 아처가 3명 있습니다. 이 아처의 가능한 모든 위치를 고려하셔야 합니다.(3중 for문으로 해결) 적군은 1턴(아처가 공격하고난 후) 후에 성벽으로 1칸 전진합니다. 성벽에 닿게 되면 그냥 사라집니다. 아처는 동일한 거리에 위치한 적군이 여러명일 경우, 가장 왼쪽에 있는 적군을 우선으로 죽입니다. 이 경우에 한 적군이 아처 여러명에게..

백준 3190 뱀 풀이 python,java
OnlineJudge2021. 1. 12. 23:15백준 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]=..

백준 9328 열쇠 BFS
OnlineJudge2021. 1. 10. 22:21백준 9328 열쇠 BFS

문제로이동 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 목차 접근 과정 오 열쇠? 비트마스킹이네 달이 차오른다 가자 문제랑 비슷해 보이는데 # 말도 안되는 생각을 해보았다.. visited = [[[0]*(1

백준 2638 치즈 풀이 python,java
OnlineJudge2021. 1. 9. 22:43백준 2638 치즈 풀이 python,java

문제로이동 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5≤N, M≤100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 표 www.acmicpc.net 목차 문제 설명 하도 안풀려서 풀이를 볼까 말까 하다가 끝까지 붙잡고 풀어냈다. 공기는 0, 치즈는 1로 표시된다. 맨 가장자리는 반드시 공기층이 있다. 즉, 매 반복마다 bfs(0,0)만 돌리면 된다는 말이다!! 이미 방문한 구역을 visited로 체크해두고 공기층에 2번 노출되면 그 치즈는 없애버린다. 그리고 반드시!! 치즈가 없어진 구역은 방문한 것으로 표기해둔다. 그렇지 않으면 그 다음 큐가 돌아갈 때 방문을 하면서 다음 턴에 없어져야..

백준 13913 숨바꼭질4 BFS
OnlineJudge2021. 1. 9. 17:50백준 13913 숨바꼭질4 BFS

문제로이동 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 목차 런타임에러 숨바꼭질, 숨바꼭질2, 숨바꼭질3에 이어 연계되는 문제입니다. 문제에 대한 자세한 설명은 없으니 미리 풀어 보시는 것을 권장합니다!! 사실 어렵지 않은 BFS 문제인데 왜 런타임 에러가 뜨는지 이해를 못하다가 1월 7일 BOJ에서 런타임 에러 업데이트로 이유를 보여주기 시작했습니다.. RecursionError.. 재귀 함수가 limit에 부딪혀 발생하는 문제였죠. 이 이유임을 확인하고 바로 통과했습니다..

백준 16236 아기상어 풀이 python, java
OnlineJudge2021. 1. 3. 16:37백준 16236 아기상어 풀이 python, java

문제로이동 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 목차 시작하기 전에 골드4의 난이도임에도 불구하고 개인적으로 많이 헤맸던 문제입니다. 오기가 생겨 이틀 정도 틈틈이 시간투자를 했지만 결국 검색을 통해 해결했습니다. 문제 설명이 꽤 복잡해 보이지만 한 번 자세히 보면 생각보다 간단한 문제이니 처음 읽을 때 유심히 보시는 것을 추천합니다. 문제 설명 상어는 9로 나타낸다. 아무 것도 없는 공간은 0으로 나타낸다. 1~6은 물고기의 크기를 나타낸다. 상어의 최초 크기는 2이다. 상어의 현재 크기보다..

image