문제주어진 격자 데이터의 전후를 비교하여 주입된 백신이 CPCU-1202 백신인지 판단하는 문제이다.CPCU-1202 백신을 놓으면, 백신이 주입된 조직에서 항체를 생성하고 같은 영역의 조직에 항체가 퍼진다.항체는 조직을 변형시켜 동일한 색상이거나 다른 색상이 될 수 있다. 풀이전체 조직의 영역들 중 색상이 바뀐 영역이 1개이하여야 한다.따라서 조직을 탐색하면서 동일한 영역이 변경된 것인지를 판단하고, 색상이 변경된 영역의 개수를 세어야 한다.BFS나 DFS를 통해 동일한 색상으로 이루어진 인접 영역을 탐색하며 해당 영역이 일관된 색상으로 변경되었는지 확인한다.탐색 중 영역이 다르다면 CPCU-1202 백신이 아님으로 NO를 출력하고,색상이 변경된 영역의 개수가 2개이상이어도 NO를 출력하며,그 외의 경..
문제통로에 음식물 쓰레기가 떨어져 있을 때, 인접한 쓰레기들끼리 하나의 덩어리로 보고 그중 가장 큰 덩어리의 크기를 구하는 문제이다. 인접한 음식물 쓰레기는 상하좌우로 붙어있는 경우를 말한다.풀이이 문제는 인접한 영역을 탐색하는 그래프 탐색 문제이다.BFS나 DFS를 활용해 연결 여부를 탐색하며 덩어리의 크기를 계산하면 된다.먼저 음식물 쓰레기의 영역을 입력받는다.이때, 쓰레기가 없는 상태는 1, 쓰레기가 있는 상태는 0으로 표시한다. (visited를 사용하지 않고 쓰레기가 있는 곳의 방문 여부를 쉽게 체크할 수 있다.)인접 칸을 탐색했을 때, 다음칸으로 이동 가능하면 쓰레기 영역 크기를 늘리고 방문 표시를 해준다.max를 사용해 가장 큰 쓰레기 크기를 갱신한다.Python 코드import sysfro..
Flood Fill 알고리즘Flood Fill 알고리즘은 다차원 배열에서 특정 영역을 탐색하고 색을 채우기 위해 사용되는 알고리즘이다.이 알고리즘은 주어진 시작점에서 인접한 같은 색의 영역을 탐색하며 색을 채운다.탐색 과정에서 DFS나 BFS를 사용하여 인접 영역을 방문한다.주로 픽셀 기반의 이미지 처리나 그래프 탐색 문제를 해결하는 데 활용된다.시간복잡도: 배열의 행 수가 n, 열 수가 m 일때, O(n * m)Flood Fill 알고리즘 구현먼저 시작 위치와 목표 색을 입력받고, 시작 위치의 기존 색을 확인한다.만약 시작 위치의 색과 목표 색이 동일하다면, 동작을 종료한다.시작 위치와 목표 색과 다르다면 목표 색으로 변경하고 상하좌우 인접한 영역을 탐색한다.인접 영역의 색이 기존 색과 동일할 때, 해..
1. Heroku 계정 생성Heroku 웹사이트에 접속해 무료 계정을 생성한다. Cloud Application Platform | HerokuHeroku is a platform as a service (PaaS) that enables developers to build, run, and operate applications entirely in the cloud.www.heroku.com웹사이트에 들어가면 "Sign Up" 버튼을 클릭하여 계정 생성 페이지로 이동한다.아래 페이지에서 이름, 이메일, 역할, 국가, 주 언어를 입력하고 "CREATE YOUR ACCOUNT"를 클릭한다.입력한 이메일로 계정 확인 메일이 전송되고, 메일을 통해 접속한 사이트에서 비밀번호를 설정하면 계정 생성이 완료된다.계..
docker-compose down 명령어는 실행중인 모든 컨테이너를 중지하고 삭제한다. 이러한 과정에서 데이터 손실이 발생할 수 있는데, 이를 방지하는 두 가지 방법을 소개하려고 한다.1. docker-compose stop 이용docker-compose stop 명령어는 컨테이너를 일시정지하는 것과 같다.이 명령어는 컨테이너를 삭제하지 않고 중지 상태로 유지하므로 언제든지 다시 시작할 수 있다.또한 서비스를 정상적으로 종료하고 데이터를 저장하는 과정을 거치기에 데이터 손실이 발생하지 않는다.2. docker-compose.yml 파일에 볼륨 지정 설정docker-compose.yml 파일에서 MySQL 데이터베이스나 기타 데이터를 저장할 서비스에 볼륨을 설정하면 데이터 손실을 막을 수 있다.아래와 같..
프로젝트 개발을 완료하고 더 이상 필요하지 않은 경우, 프로젝트를 종료하고 PowerShell을 통해 프로젝트를 삭제할 수 있다. 1. IDE 종료먼저, 작업을 마친 후 IDE에서 프로젝트를 종료한다.PyCharm인 경우 File > Close Project를 선택하여 종료한다. 2. PowerShell 실행Windows 검색창에 "PowerShell"을 입력하고, 관리자 권한으로 PowerShell을 실행한다. 3. 프로젝트 디렉토리로 이동삭제할 프로젝트가 위치한 디렉토리로 이동한다.cd C:\Users\\4. 프로젝트 폴더 삭제Remove-Item -Recurse -Force .\-Recurse는 하위 디렉토리와 파일을 포함하여 삭제한다.-Force는 사용자의 확인 없이 삭제를 진행한다.
개발을 하다 보면 .gitignore파일에 추가했지만 이미 Git에 푸시된 파일을 삭제해야 할 때가 있다.이럴 때 해당 파일(example.log)을 GitHub Repository에서 제거하는 방법은 다음과 같다.1. 파일 삭제먼저, Git에서 example.log 파일을 삭제해야 한다.이때 --cached 옵션을 사용하면 워킹 디렉터리에서는 삭제되지 않고, Git의 스테이징 영역에서만 없어진다.git rm --cached example.log2. .gitignore 파일 업데이트이제 example.log 파일이 .gitignore에 포함되어 있는지 확인하고 없다면 추가한다.파일을 열어 직접 example.log를 추가하거나bash에서 echo "example.log" >> .gitignore를 사용할..