본문 바로가기
728x90

시물레이션18

[python] 백준 2638 치즈 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 문제 해결 전형적으로 그래프 안에서 이동해서 모두 공기가 되는데 까지 걸리는 시간이므로 bfs를 사용하는 것이 좋을 것이다. 그런데 문제는 치즈를 중심으로 보는 것이 아니라 공기를 중심으로 언제 녹는 벽(치즈)가 다 없어지는지 확인하는 문제이다. 따라서 While 반복문을 통해 시간을 측정하면서 언제 장애물을 안만나는지 확인하면 되는문제 BFS로 공기를 이동시키면서 어느 치즈지역이 공.. 2023. 12. 21.
[python] 백준 13335 트럭 https://www.acmicpc.net/problem/13335 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 문제 해결 다리를 que를 이용하여 해결하면 좋겠다는 생각이 바로 든다. que안에 있는 숫자의 합은 l을 넘어서는 안된다. 1초마다 FIFO로 첫 번째 트럭 or 공기(?)가 나가고 대기중인 트럭이 들어오거나 공기가 들어오는 시물레이션을 코딩하면 된다. 공기가 들어갈지 트럭이 들어갈지의 기준은 다리에 있는 무게의 합+대기중인 트럭의 무게가 l보다 .. 2023. 12. 10.
[python] 백준 11559 Puyo Puyo https://www.acmicpc.net/problem/11559 11559번: Puyo Puyo 총 12개의 줄에 필드의 정보가 주어지며, 각 줄에는 6개의 문자가 있다. 이때 .은 빈공간이고 .이 아닌것은 각각의 색깔의 뿌요를 나타낸다. R은 빨강, G는 초록, B는 파랑, P는 보라, Y는 노랑이다. www.acmicpc.net 문제 해결 문제 상황을 시물레이션으로 구현할 수 있으면 어렵지 않은 문제 첫 행 첫 열부터 하나씩 확인을 해서 이어져 있는 같은 색 뿌요가 4개 이상인지 BFS를 이용해 확인한다. 확인한 점은 다시 확인할 필요가 없으므로 visited를 이용해 구별해서 방문 한 지점은 패스한다. 이어져 있는 같은색 점이 4개 이상이면 터뜨리면서 빈 공간으로 만든다. 모두 한바퀴 확인하면 .. 2023. 11. 23.
[C++] 백준 14719 빗물 https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net 문제 해결 높이의 기준을 잡아야 한다. 가장 끝 왼쪽과 오른쪽이 모두 가장 높은 길이이면 쉽제 $\sum (min(*가장 왼쪽 높이, *가장 오른쪽 높이)-i)*(w-2)$ ($i=1,2,3...$)라는 것을 알 수 있다 여기서 관점을 바꾸어 $i$를 기준으로 생각을 해보면 $i$보다 왼쪽,오른쪽 모든 방향에 블록의 높이중 $i$번째 높이보다 큰 것이 있다면 $min(왼쪽 높이중.. 2023. 8. 29.
728x90