본문 바로가기

Algorithm475

[파이썬] 백준 6593 : 상범 빌딩 (골드5) [파이썬] 백준 6593 : 상범 빌딩 (골드5) 6593번: 상범 빌딩 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어 www.acmicpc.net 문제 풀이 0. 방향성 생각 최단거리 문제. BFS를 사용한다 1. BFS 함수 정의 import sys input = sys.stdin.readline from collections import deque step = [[1,-1,0,0,0,0],[0,0,1,-1,0,0],[0,0,0,0,1,-1]] def bfs(x,y,z): q = deque() q.append((x,y,z)) arr[z][y][x] = 0 wh.. 2023. 5. 15.
[파이썬] 백준 2573 : 빙산 (골드4) [파이썬] 백준 2573 : 빙산 (골드4) 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제 풀이 0. 방향성 생각 주어진 배열의 크기가 크고 시간이 지남에 따라 지속적으로 빙산의 개수를 체크해야한다. DFS보다는 BFS가 시간적으로 이득일 것 같다. 또한 빙산에 인접한 바다의 개수를 세면서 빙산을 녹이면 빙산이 0이 될 경우에 오류가 발생할 수 있어서 추가적인 리스트를 만들어준다. 1. 입력받기 from collections import deque import sys input = sys.stdi.. 2023. 5. 14.
[파이썬] 백준 2589 : 보물섬 (골드5) [파이썬] 백준 2589 : 보물섬 (골드5) 2589번: 보물섬 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 www.acmicpc.net 문제 풀이 0. 방향성 생각 최장거리 문제라 BFS로 방향성을 잡는다. 하지만 군집 내에 점마다 거리가 달라지므로 최장거리를 찾으려면 모든 점을 탐색해야한다. (더 좋은 방법은 모르겠다) 1. 입력 받기 from collections import deque import sys input = sys.stdin.readline h,w = map(int,input().split()) arr = [] for i in range.. 2023. 5. 13.
[파이썬] 백준 9935 : 문자열 폭발 (골드4) [파이썬] 백준 9935 : 문자열 폭발 (골드4) 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 풀이 0. 방향성 생각 전형적인 스택문제. 입력을 받고 for문 돌려서 스택이 쌓이면 제거한다. 1. 입력받기 s = input() bomb = input() mask = len(bomb) answer = [] 입력을 받는다. 폭탄의 길이를 체크한다. 2. 스택 구현 for i in s : answer.append(i) if bomb[-1]==i and ''.join(answer[-mask:.. 2023. 5. 12.