본문 바로가기
반응형

전체 글330

[백준 2206] 벽 부수고 이동하기(python) https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 벽 부수고 이동하기 3차원 리스트와 BFS를 활용하여 해결하는 문제 2차원으로 시도하다가 시간초과의 벽에 걸려서 다른 사람들의 코드를 참고해보니, 3차원 리스트로 풀면 해결 할 수 있는 문제였다. 정답 코드 def path_finding(): visited = [[[0]*2 for _ in range(M)] for _ in range(N)] # 3차원 리스트, 벽 깰 때와.. 2023. 3. 5.
[백준 17281] ⚾ 야구 (python) https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net ⚾ 문제 주어진 야구 룰 대로 구현하여 점수를 구하는 문제 주어진 조건 중 일부를 구현을 어떻게하면 좋을지 생각했는데, 원하는 형태로 구현에 실패했음 다른 사람의 코드를 일부 참고하고서야 성공 할 수 있었다. 정답 코드 import sys from itertools import permutations N = int(sys.stdin.readline()) game = [list(map(int, sys.s.. 2023. 3. 5.
[백준 7569] 토마토 (python) https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 토마토 문제 상자안에 놓여있는 토마토가 옆으로 갈수록 익어가는데, 전체 토마토가 익는데 걸리는 최소 일 수를 찾는 문제이나, 2차원이 아닌 3차원으로 고려해줘야하는 문제 BFS를 활용하여 풀고, 3차원 리스트로 만들어주면 간단하게 해결 할 수 있는 문제 내가 푼 정답코드 def ripe(): # 3차원 리스트의 BFS while queue: z, y, x = queue.po.. 2023. 3. 4.
[백준 7576] 토마토 (python) https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 토마토 문제 상자안에 놓여있는 토마토가 옆으로 갈수록 익어가는데, 전체 토마토가 익는데 걸리는 최소 일 수를 찾는 문제 BFS를 활용하여 풀면 간단하게 해결 할 수 있는 문제 내가 푼 정답코드 def ripe(): while queue: y, x = queue.popleft() for dy, dx in spread: ny, nx = y + dy, x + dx if 0 2023. 3. 4.
[백준 2178] 미로 탐색(python) https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 미로 탐색 문제 미로를 탐색해 나갔을 때, 도착 지점에 도착할 경우 총 몇 칸을 이동하게 되는지 구하는 문제 BFS를 활용하면 간단하게 풀 수 있는 문제 내가 푼 정답코드 def finding(a,b): #길을 찾아주자 visited = [[0]* M for _ in range(N)] queue = [[a,b]] visited[a][b] = 1 # 방문 처리 while queue: y, x = queue.pop(0) for dy.. 2023. 3. 3.
[백준 1012] 유기농 배추(python) https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 유기농 배추 문제 인접해있는 칸들로 이루어진 영역이 총 몇개인지 구하는 문제 BFS나 DFS를 이용하면 쉽게 풀 수 있는 문제 내가 푼 정답코드 def warm(a,b): visited = [[0]*M for _ in range(N)] queue = [[a,b]] visited[a][b] = 1 cnt = 0 while queue: cnt += 1 y, x = queue.pop(0) for dy, dx in .. 2023. 3. 3.
반응형