728x90 반응형 Python169 2022.05.18 [백준] (python 파이썬) 경사로 https://www.acmicpc.net/problem/14890 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 아래 코드는 하드코딩으로 작성해서 알아보기 힘들 수도 있다.... 우선 해당 열, 행이 지나갈 수 있는 길인지 체크하기 위한 ch를 True로 설정했다. 그리고 같은 칸의 개수를 세기위한 cnt변수, 각 라인에서 경사로를 설치했는지를 체크하기 위한 ch_runway배열을 선언했다. 이후, 가로를 체크하는 for문이 돈다. 1. 만약 j 값과 j+1 값이 같고 ch_runway[j+1]=False (j+1의 칸에 경.. 2022. 5. 18. 2022.05.17 [백준] (python 파이썬) 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 풀이 이 문제는 BFS를 사용하면 되는 문제이지만 물고기를 먹을 때마다 BFS를 해야 한다. 이유는 물고기를 먹을때마다 다음에 먹을 물고기의 최단거리를 구해야 하기 때문이다. 우선 shark_x,shark_y=0,0 # 상어의 위치 shark_size=2 # 상어의 크기 eat_cnt=0 # 상어가 먹은 물고기 수 fish_cnt=0 # 물고기 수 time=0 변수들을 선언해주었다. 이후 .. 2022. 5. 17. 2022.05.16 [백준] (python 파이썬) 달팽이 https://www.acmicpc.net/problem/1913 1913번: 달팽이 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 www.acmicpc.net 풀이 이 문제는 N*N크기의 배열의 중간에서 시작해서 x축으로 1, y축으로 1, 다음 2, 2, 3, 3 이런식으로 이동한다. 그래서 해당 거리를 저장할 dir변수를 1로 선언하고 각 칸에 들어갈 숫자를 저장할 num을 저장했다. 그리고 x축이 위 아래의 방향, y축의 왼쪽 오른쪽의 방향을 정해줄 ch_dir변수를 True로 선언했다. 이후 좌표를 저장할 값을 N//2로 저장했고 n값의 좌표를 초.. 2022. 5. 16. 2022.05.09 [백준] (python 파이썬) 가장 가까운 공통 조상 https://www.acmicpc.net/problem/3584 3584번: 가장 가까운 공통 조상 루트가 있는 트리(rooted tree)가 주어지고, 그 트리 상의 두 정점이 주어질 때 그들의 가장 가까운 공통 조상(Nearest Common Anscestor)은 다음과 같이 정의됩니다. 두 노드의 가장 가까운 공통 조상은, 두 www.acmicpc.net 풀이 이 문제는 주어진 노드에서 부모 노드를 확인하며 공통 부모 노드를 찾는 문제이기 때문에 graph[자식노드]에 부모노드를 저장했다. 그리고 set배열에 먼저 주어진 노드 중 하나에 대한 부모 노드를 모두 저장해 주었다. 여기서 set을 사용한 이유는 set안의 존재여부를 판단할 때, 시간 복잡도가 O(1)이 걸리기 때문이다. 하나의 노드에 .. 2022. 5. 9. 이전 1 ··· 5 6 7 8 9 10 11 ··· 43 다음 728x90 반응형