반응형

BFS 4

백준 1012 유기농 배추 (파이썬)

DFS/BFS, 실버 2 문제: https://www.acmicpc.net/problem/1012 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다. 한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다..

백준 18405 경쟁적 전염 (python)

문제 출처: https://www.acmicpc.net/problem/18405 나의 접근법 위 문제는 이것이 코딩테스트다 with 파이썬 에 수록된 문제입니다. 먼저 답을 읽지 않고 제 스스로 풀어보려고 노력했습니다. 바이러스의 위치를 x,y좌표로 기억하여 번호 마다 리스트에 저장하였습니다. 그리고 시간 S 만큼 반복하여 바이러스를 퍼뜨렸습니다. 일반 케이스 말고 특이 케이스도 생각해봤습니다. 만약 1번 바이러스가 2번 나오면 어떡하지? 만약 1~K번의 바이러스가 연속으로 나오지 않고 랜덤으로 나오면 어떡하지? 저는 위와 같은 경우의 수도 고려하며 풀려고 노력했습니다. 첫번째 풀이법 import sys from collections import deque def BFS(virus, virusPositi..

백준 14502 연구소 (python)

문제 출처: https://www.acmicpc.net/problem/14502 깊은 복사와 얕은 복사 파이썬에서는 리스트를 크게 얕은 복사와 깊은 복사 2가지로 복사하고 있습니다. 얕은 복사 객체의 주소값을 복사하는 경우입니다. 대입 연산자 (‘=’) 를 사용해서 리스트를 다른 리스트에 대입하는 방식입니다. 변형(mutable) 객체는 복사한 객체의 내용을 변경하면 원본 리스트의 내용도 변합니다 불변형(immutable) 객체는 복사한 객체의 내용을 변경해도 원본에는 영향이 없습니다. 깊은 복사 객체의 데이터만을 복사하는 경우입니다. copy 모듈의 copy() ,deepcopy() 함수를 사용합니다. 1차원 리스트는 copy()를 사용하고 2차원 이상의 배열은 deepcopy() 함수를 사용합니다. ..

Algorithm 3.DFS/BFS

탐색 (Search) 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정으로 그래프, 트리등의 자료구조 안에서 탐색이라는 과정을 사용합니다. 대표적인 탐색 알고리즘으로는 DFS, BFS이 있습니다. 이러한 탐색 알고리즘을 사용하기 위해서는 스택(Stack)과 큐(Queue)라는 자료구조를 사용합니다. 자료구조: 데이터를 표현하고 관리하고 처리하기 위한 구조 스택과 큐는 push(삽입), pop(삭제) 함수들을 사용합니다. push(삽입), pop(삭제)를 사용하기 위해서는 오버플로우(Overflow), 언더플로우(Underflow)를 고려해야 합니다. 오버플로우(Overflow): 스택과 큐 등의 자료구조의 용량이 가득 찬 상태에서 push()를 수행할 경우 발생합니다. 언더플로우(Underflow): ..

1
반응형