본문 바로가기

Algorithm/Simulation41

[파이썬] 백준 9328 : 열쇠 (골드1) [파이썬] 백준 9328 : 열쇠 (골드1) 9328번: 열쇠 상근이는 1층 빌딩에 침입해 매우 중요한 문서를 훔쳐오려고 한다. 상근이가 가지고 있는 평면도에는 문서의 위치가 모두 나타나 있다. 빌딩의 문은 모두 잠겨있기 때문에, 문을 열려면 열쇠가 www.acmicpc.net 문제 풀이 0. 방향성 생각 BFS + 시뮬레이션 BFS를 돌리면서 열쇠를 먹은 경우, 현재 상태를 변화시킨다. 변화된 상태에서 BFS를 또 돌리고 반복한다. 핵심은 열쇠를 먹고나서 BFS를 돌렸는데 변화가 없는 경우 탐색이 끝난 것. visit 배열을 어떻게 구성할까 하다가, 문제 조건에서 A to Z까지 다 나와서 26개를 비트마스킹으로 하기에는 array 크기가 좀 큰편이라 다른 방법 생각. 위에 생각처럼 한 stage마다 .. 2023. 12. 19.
[파이썬] 백준 20055 : 컨베이어 벨트 위의 로봇 (골드5) [파이썬] 백준 20055 : 컨베이어 벨트 위의 로봇 (골드5) 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 문제 풀이 0. 방향성 생각 선형 구조의 시작점에서 push와 비슷한 연산이 이루어진다. 시간 단축을 위해서 list 대신 deque 사용 컨베이어 벨트 정보와 로봇 정보 따로 deque를 정의한다. 1. 입력 from collections import deque import sys input = lambda : sys.stdin.readline().rstrip() n,k = .. 2023. 10. 10.
[파이썬] 백준 18405: 경쟁적 전염 (골드5) [파이썬] 백준 18405: 경쟁적 전염 (골드5) 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 문제 풀이 0. 방향성 생각 군집의 테두리 찾아서 전염시키기 1. 입력 import sys input = lambda : sys.stdin.readline().rstrip() n,k = map(int,input().split()) arr = [list(map(int,input().split())) for _ in range(n)] time,ty,tx = map(int,input()... 2023. 9. 20.
[파이썬] 백준 2993 : 미네랄 (골드1) [파이썬] 백준 2993 : 미네랄 (골드1) 2933번: 미네랄 창영과 상근은 한 동굴을 놓고 소유권을 주장하고 있다. 두 사람은 막대기를 서로에게 던지는 방법을 이용해 누구의 소유인지를 결정하기로 했다. 싸움은 동굴에서 벌어진다. 동굴에는 미네랄 www.acmicpc.net 문제 풀이 0. 방향성 생각 enumerate로 순서 받아서 좌 우 파괴하기 BFS로 군집 탐색해서 아래부분 얼마나 떨어지는지 확인하기 떨어지는 좌표 집합으로 구현하기. 1. 입력 from collections import deque import sys input = lambda: sys.stdin.readline().rstrip() h,w = map(int,input().split()) arr = [list(input()) fo.. 2023. 9. 12.